Sé que parece que esta pregunta se ha publicado muchas veces, pero he leído casi todas (la mayoría de los tutoriales en Internet), y Todavía no puedo entender lo que estoy haciendo mal.Llamar a un servicio ASP.NET 4.0 WCF de jQuery produce 400 Bad Request
Intenté implementar en un sitio web que estamos desarrollando un servicio web WCF para ser consumido por un script jQuery, pero sigo obteniendo 400 Bad Request
al hacer la solicitud AJAX, y estoy empezando a perder la esperanza.
Tenga en cuenta que soy nuevo en WCF, y me formé solo a través de tutoriales en línea, por lo que es completamente posible pasar por alto o principalmente arruinar algo.
Preguntas que intentaron, pero no ayudan:
- WCF Service returns 400 Bad Request
- uploading large xml to WCF REST service -> 400 Bad request
- 400 Bad Request HTTP Response using a WCF POST via JQuery
- Error 400 (Bad Request) with WCF Tutorial?
- Why does my C# client, POSTing to my WCF REST service, return (400) Bad Request?
r externa esources he leído en vano:
- http://www.west-wind.com/weblog/posts/324917.aspx
- http://www.c-sharpcorner.com/UploadFile/sridhar_subra/116/
- http://learningbyfailing.com/2008/05/calling-wcf-from-jquery-using-parameters/
- http://iainjmitchell.com/blog/?p=97
- Muchos otros ...
También probé la creación de una nueva solución, con solo una página y el servicio, para gobernar interferencias, pero todavía tengo el mismo problema. Aquí puede encontrar el código:
IService.cs
namespace WebService
{
using System;
using System.ServiceModel;
using System.ServiceModel.Web;
[ServiceContract(Name = "Service", Namespace = "WebService")]
public interface IService
{
[OperationContract]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped, Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
String Test();
}
}
Service.svc.cs
namespace WebService
{
using System;
public class Service : IService
{
public String Test()
{
return "Hello, world.";
}
}
}
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebService.Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#doAjax").click(function (event) {
event.preventDefault();
jQuery.ajax({
contentType: "application/json"
, dataType: "text"
, error: function (jqXHR, textStatus, errorThrown) {
console.group("AJAX error:");
console.debug(jqXHR);
console.debug(textStatus);
console.groupEnd();
}
, processData: false
, success: function (data, textStatus, jqXHR) {
console.group("AJAX success:");
console.debug(data);
console.debug(textStatus);
console.debug(jqXHR);
console.groupEnd();
}
, type: "post"
, url: "/Service.svc/Test"
});
});
});
</script>
<title>WebService</title>
</head>
<body>
<form runat="server">
<h1><%= this.Page.Title %></h1>
<p><input id="doAjax" type="button" value="Run" /></p>
</form>
</body>
</html>
Web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<bindings />
<client />
<behaviors>
<endpointBehaviors>
<behavior name="Behavior">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<services>
<service name="Service">
<endpoint behaviorConfiguration="Behavior" binding="webHttpBinding" contract="WebService.IService" />
</service>
</services>
</system.serviceModel>
</configuration>
¿Encontró una respuesta a esta pregunta? Estoy teniendo el mismo problema y no pude encontrar la solución ... :( –
@NaveedButt no, y desde entonces me he mudado a otros proyectos. Pruebe las respuestas a continuación, y si puede hacerlo, publique una respuesta/comentario para que otros puedan saber qué hacer. – Albireo
Puedo ver más detalles sobre el error colocando un div en la página y estableciendo su html en jqXHR en caso de error. De esta manera, se me presenta un mejor resultado. se publicará una solución aquí, cuando encuentro un IA. –