Я пытаюсь написать приложение ajax с использованием C# backend. Для вызовов ajax я использую jquery. Он отлично работает с IE и Google Chrome, но он дает 400 плохих запросов, когда я пытаюсь открыть его с помощью Firefox. Вот передний конец кодC# ajax post 400 плохой запрос firefox только
$.ajax({
url: "http://localhost:25028/Service.svc/Fun",
type: "POST",
dataType: "json",
timeout: 10000,
contentType: "application/json; charset=utf-8",
data: JSON.stringify({input: 'input'}),
crossDomain: true,
success: function (input) {
var data = JSON.parse(input);
alert(data.data);
},
error: function (input, textstatus, errorThrown) {
alert(textstatus);
}
});
И я использую следующие привязки в web.config, если они имеют отношение.
<behavior name="EndpBehavior">
<webHttp />
</behavior>
<service behaviorConfiguration="ServiceBehavior" name="Service">
<endpoint address="" binding="webHttpBinding" contract="Service" behaviorConfiguration="EndpBehavior"/>
</service>
Определение функции выглядит следующим образом
[OperationContract]
[WebInvoke(Method = "*", BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
public string Fun(string input)
{
return new JavaScriptSerializer().Serialize(new { data = "this is data" });
}
}
Я не понимаю, что эта ошибка.
Заранее спасибо.
Используйте скрипач или провода, чтобы узнать разницу. – Aneri
Попробуйте очистить 'cache: false'. – Jai
Если вы откроете Firebug, что он отобразит в качестве запроса? – aquaraga