0

私のアプリにはこのコードがあります。content-typeが送信されないことに気づきました。強制的に送信する方法を知っていますか?

$.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がありません。私は何が欠けていますか?

手伝ってくれてありがとう。

4

2 に答える 2

0

データをPOSTする場合にのみ、Content-Typeを設定できます。したがって、変更する必要があります。

type: 'POST'

あなたはおそらく、あなたが応答して何を受け入れるかをサーバーに伝えようとしているでしょう:

accepts: 'application/json'

詳細については、 jQueryAjaxAPIを参照してください

于 2012-08-30T07:26:52.337 に答える
0

リクエストにコンテンツタイプは必要ありません。

次のように変更dataTypeします。json

$.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,を読む必要があります、より正確に応答としてこのヘッダーを追加してください。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>
于 2012-08-30T07:35:38.327 に答える