1

json オブジェクトを servlet に送信しようとしています。

しかし、次のようなエラーが表示されます: XMLHttpRequest cannot load http: //192.168.10.113:8080/collective-intellegence/SaveFeedback. Origin http: //192.168.9.185 は Access-Control-Allow-Origin で許可されていません

マイコード

var feedbackData = [];

        for (j in storeData.collection) {
            var fromData="abc";
            feedbackData.push({
                "queryid": queryId,
                "from": fromData,
                "to": GetUserDetails(storeData.item(j)),
                "isresolved": document.getElementById(("chk" + j)).checked
            });
        }
$.ajax({
                type: 'POST',
                url: saveDataURL,
                data: "{ 'feedback': '" + feedbackData + "' }",
                dataType: 'json',
                success: function (data) {
                    alert('Success');
                },
                error: function () {
                    alert('Error');
                }
            });

これはエラーを示しています

私はグーグルで、jsonオブジェクトをクロスドメインに渡すことができないことを発見しました。

そこで、クロス ドメインに渡すことができる jsonp オブジェクトを作成することにしました。

問題の解決を手伝ってください

前もって感謝します

4

2 に答える 2

0

JSONP の仕組みについては、http: //en.wikipedia.org/wiki/JSONPを参照してください。

JSONP はタグを作成することによって機能するため、POST ではなく、GET HTTP メソッドでのみ JSONP を使用できます。また、JSONP で送信するすべてのデータは、URL クエリ パラメータで送信されます (GET リクエストには本文がないため)。

CORS を調べて、クロスオリジンの問題に対する適切な解決策であるかどうかを検討する必要があると思います: http://en.wikipedia.org/wiki/Cross-origin_resource_sharing

于 2012-12-06T18:34:31.337 に答える
0

データ型をJSONPに変更する必要があります

function hello(data){ // my call back function
            console.log(data);
        }

        $(function(){
            //It's not actually working, but htis code should work well
            //Let's say that you put your docStats in an object
            //like docStats = data.response.clickStats.docStats

            $.ajax({
                url:'http://example.com',
                type : 'POST' ,
                dataType: 'jsonp',
                data : {
                    fq: 'param1',
                    wt: 'param2',
                    "json.wrf" : 'hello' // how i call my callback function

                }
            });

        })
于 2012-12-06T07:28:35.080 に答える