为什么调用jQuery的$.ajax()会在Chrome和Firefox中触发一个空请求?
我试图从jQuery调用WCF RESTful服务。我使用JSON对请求和响应进行编码 以下代码在IE8中正常工作:为什么调用jQuery的$.ajax()会在Chrome和Firefox中触发一个空请求?,jquery,ajax,wcf,rest,Jquery,Ajax,Wcf,Rest,我试图从jQuery调用WCF RESTful服务。我使用JSON对请求和响应进行编码 以下代码在IE8中正常工作: url = 'http://ipv4.fiddler:5683/WeatherWCF/NewBinding/MyService/GetValueFloat'; $.ajax({ url: url, data: '{"alias": "Udetemperatur"}', type: "POST", contentType:
url = 'http://ipv4.fiddler:5683/WeatherWCF/NewBinding/MyService/GetValueFloat';
$.ajax({
url: url,
data: '{"alias": "Udetemperatur"}',
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "text", // not "json" we'll parse
success:
function(res) {
alert('Received response: ' + res);
}
});
然而,在Firefox和Chrome中,res都包含一个空字符串。使用Fiddler监视请求后,jQuery似乎会向服务器发送一个空请求,如以下屏幕所示:
这是成功的请求:
我做错了什么
亲切问候,
马丁http://ipv4.fiddler:5683. 由于安全策略,不允许跨域ajax请求。在FireFox中,请使用查看发送到服务器的确切内容和响应。首先检查Darin Dimitrov的答案。然后考虑使用DATAYPE:JSONP来生成返回JSON数据的跨域调用。
有关详细信息,请查看。请尝试更改Url变量的名称 或者
myurl = 'http://ipv4.fiddler:5683/WeatherWCF/NewBinding/MyService/GetValueFloat';
$.ajax({
url: myurl ,
或者在键名周围加引号
url = 'http://ipv4.fiddler:5683/WeatherWCF/NewBinding/MyService/GetValueFloat';
$.ajax({
'url': url,
原来XSS保护是罪魁祸首——在IIS的同一个域上托管解决了这个问题。谢谢: