2012-08-30 74 views
0

在我的应用程序中,我有这段代码。我注意到,该内容类型未能发送。你知道如何强制发送它吗?ContentType无法发送

$.ajax({                 
     crossDomain: true, 
     type: 'GET', 
     url: 'http://serv/services/rest/contact/' + localStorage.getItem('contact'), 
     callback: 'jsonpCallback', 
     jsonpCallback: 'jsonpCallback', 
     jsonp: '_jsonp', 
     **contentType: 'application/json',** 
     dataType: 'jsonp json', 
     timeout : 10000, 

     success: function(data){ 
      $("#name").attr("value", data.response.label); 
     }   }, 
     error: function (xhr, ajaxOptions, thrownError){ 
      alert("Status: " + xhr.status + ", Ajax option: " + ajaxOptions + ", Thrown error: " + thrownError); 
     }, 
    }); 

我的请求头是:

Accept:*/* 
Accept-Charset:ISO-8859-2,utf-8;q=0.7,*;q=0.3 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4 
Connection:keep-alive 
Cookie:JSESSIONID=F0ED33279488888888B35A731B40EE0C; oam.Flash.RENDERMAP.TOKEN=789456321 
Host:serv 
User-Agent:Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.1 (KHTML, like Gecko)     Chrome/21.0.1180.83 Safari/537.1 

正如我所说的,则contentType丢失。我错过了什么?

感谢您的帮助。

回答

0

如果您要发布数据,则只能设置Content-Type。所以,你需要改变:

type: 'POST' 

您也许正在寻找告诉你,在响应接受什么样的服务器尝试:

accepts: 'application/json' 

+0

谢谢您的回答。我需要做一个跨域请求,所以我必须使用JSONP,它需要输入:get。我将简单地改变一个服务器端不要求contenttype。 –

+0

没问题希望你把它排序。 :) – Scott

0

你没有看到这里jQuery Ajax API了解更多信息需要内容类型的请求。

更改dataTypejson这样的:

$.ajax({ 
    type: "GET", 
    url: 'http://serv/services/rest/contact/' + localStorage.getItem('contact'), 
    dataType: "json", 
    success: function(data){ 
     $("#name").attr("value", data.response.label); 
    }, 
    error: function (xhr, ajaxOptions, thrownError){ 
     alert("Status: " + xhr.status + ", Ajax option: " + ajaxOptions + ", Thrown error: " + thrownError); 
    } 
}); 

而是返回数据为JSON

我没有注意到你的crossDomain: true,,对于你的工作你需要阅读Cross-Origin Resource Sharing,更确切地说,添加这个标题Access-Control-Allow-Origin: http://www.example.com作为回应。

至于PHP的例子:

header('Access-Control-Allow-Origin: http://www.example.com'); 

举例.htaccess

<IfModule mod_headers.c> 
    Header set Access-Control-Allow-Origin "http://www.example.com" 
</IfModule> 
+0

谢谢你的回答。我需要使用JSONP而不是JSON。我已经处理了跨域,问题出现在服务器响应中。服务器需要的内容类型,并根据@scott说,我无法发送它。 –