为什么调用jQuery的$.ajax()会在Chrome和Firefox中触发一个空请求?

为什么调用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:

我试图从jQuery调用WCF RESTful服务。我使用JSON对请求和响应进行编码

以下代码在IE8中正常工作:

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的同一个域上托管解决了这个问题。谢谢: