JQuery-Ajax头文件问题

当我尝试使用JSON进行POST请求时,我的标题出现问题
这是代码:

$.ajax({ type: "POST", url: url, data: jsonData, dataType: 'json', beforeSend: function(xhrObj){ xhrObj.setRequestHeader("Content-Type","application/json"); xhrObj.setRequestHeader("Accept","application/json"); }, error: function(){ alert("Fail"); }, success: function(){ alert("Success"); } }); 

这是Firebug显示的请求标题。

 OPTIONS /path HTTP/1.1 Host: 192.168.15.109:8080 User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0 FirePHP/0.7.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip, deflate DNT: 1 Connection: keep-alive Origin: http://localhost Access-Control-Request-Method: POST Access-Control-Request-Headers: content-type x-insight: activate Pragma: no-cache Cache-Control: no-cache 

响应标题:

 HTTP/1.1 204 No Content Date: Thu, 24 May 2012 19:17:01 GMT Allow: OPTIONS,POST 

正如您所看到的,标题与我指定的标题不匹配,但是当我使用CURL时,标题是这样的:

 POST /path HTTP/1.1 User-Agent: curl/7.25.0 (i386-pc-win32) libcurl/7.25.0 OpenSSL/0.9.8u zlib/1.2 Host: localhost:8080 Accept: */* Content-Type: application/json Content-Length: 5 

对此有何想法或解决方案?

我还修改了JQuery Source来设置Ajax发送到JSON的Headers的默认值,但是没有用。

似乎是同源政策问题。 使用dataType='jsonp'应该有效,但这可能需要进行其他更改。

有关详细说明,请参阅https://developer.mozilla.org/en/http_access_control 。

实际上,这是一个跨域问题,我将我的URL定义为IP,因此浏览器将其解释为跨域请求。

谢谢你的一切!