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

时间:2010-03-15 10:41:51

标签: 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: "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://imgur.com/EJgwS.png
这是成功的请求:http://imgur.com/S77BA.png

我做错了什么?

亲切的问候,

马丁

3 个答案:

答案 0 :(得分:0)

http://ipv4.fiddler:5683。由于跨域安全策略,不允许ajax请求。在FireFox中使用FireBug来查看发送到服务器的确切内容以及响应的内容。

答案 1 :(得分:0)

首先检查Darin Dimitrov的答案。然后考虑使用dataType: "jsonp"进行跨域调用,返回json数据。

查看jQuery.ajax documentation以获取更多信息

答案 2 :(得分:0)

尝试更改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,