0

jQueryでAjax呼び出しを使用してJSONデータをサーバーに投稿しているときに、関数が成功モードにならないという問題に直面しています。Firefox の POSTER プラグインを使用して投稿すると、正常に投稿されます。同じコードスニペットとスクリーンショットを共有します。

function showSubscribeContent()
    {
        alert("*1*------- SUB CLICKED");

        var myJSONData = '{"data":{"mode" : "subscribe","technologyareas":[1],"assettypes":["podcast","documents"]}}';


        alert("*2*------- POSTING--------->"+myJSONData);


        $('#subscribePage').html('<h1>POSTING...</h1>');

        $.ajax({
            type: 'POST',
            url: 'https://tt.s2.acc.com/tt/subscribe-service/uid=sagar_mate',
            data: myJSONData,
            dataType: 'application/xml',
            success: function(data) { 
             alert("*3*------- POSTED SUCCESSFULLY TO THE SERVER");

             $('#subscribePage').html('<h1>POSTED</h1>');

          } // Success Function 
          });   // Ajax Call
}

アラート番号12が表示されますが、 3は表示されません。

また、Firefox の POSTER プラグインを使って投稿すると、簡単に投稿されます。

ここに画像の説明を入力

応答は成功です。

POSTER プラグイン スナップ

AJAX 呼び出しを使用して同じデータを投稿できません。

ありがとう、アンキット

4

4 に答える 4

1

このコードで試してください

function showSubscribeContent()
    {
        alert("*1*------- SUB CLICKED");
        var myJSONData = {"data":{"mode" : "subscribe","technologyareas":[1],"assettypes":["podcast","documents"]}};
        alert("*2*------- POSTING--------->"+myJSONData);
        $('#subscribePage').html('<h1>POSTING...</h1>');

        $.ajax({
            type: 'POST',
            url: 'https://tt.s2.acc.com/tt/subscribe-service/uid=sagar_mate',
            data: myJSONData,
            dataType: 'application/json',
            success: function(data) { 
             alert("*3*------- POSTED SUCCESSFULLY TO THE SERVER");
             $('#subscribePage').html('<h1>POSTED</h1>');

          } // Success Function 
          });   // Ajax Call
}

ここで、次の行を変更しました

myJSONData を文字列から JSON オブジェクトに変換しました

var myJSONData = {"data":{"mode" : "subscribe","technologyareas":[1],"assettypes":["podcast","documents"]}};

注:これが機能しない場合は、文字列(あなたが行っていた方法)で試してください

データスタイルを JSON に変更

dataType: 'application/json',
于 2013-01-21T11:01:37.750 に答える
1

AJAX 呼び出しの URL が同じドメインのものでない限り、それまでは、うまく投稿されるとは思えません。Firefox の POSTER プラグインはドメインにそのような制限を課しませんが、ブラウザはこの制限をアプリケーションに課します。

エラーを確認してみてください: function(){alert(4);}

少なくともエラーハンドラーに到達するかどうかを確認する

于 2013-01-21T08:08:55.157 に答える
1

Firefox の POSTER プラグインを使用する場合は datatype を json として指定し、ajax を使用する場合は xml を使用していることを明確にしてください。

データを JSON として投稿する場合は、JSON オブジェクトを受け入れて文字列に変換する JSON.stringify を使用します。

于 2013-01-21T08:29:47.210 に答える
0

beforeSend 関数にヘッダーを追加すると、うまくいきました。CORS のセキュリティ上の理由。

于 2013-01-24T09:58:41.337 に答える