0

クロスドメイン ajax 呼び出しを行っています。これは、mysql データベースにデータを挿入しています。

var urlsearch = "http://192.168.10.113:8080/collective-intellegence/StoreClicks?userid=" + userId + "&query=" + query;
$.ajax({
    type: 'POST',
    url: urlsearch,
    dataType: 'json',
    success: function (data) {
    }
});

上記のコードを実行すると、このエラーメッセージが表示されます

XMLHttpRequest は http を読み込めません: //192.168.10.113:8080/collective-intellegence/StoreClicks?userid=1&query=python&url=http://www.ourgoalplan.com/KLMS/TipView.aspx?id=1785。Origin http: //192.168.9.185 は Access-Control-Allow-Origin で許可されていません。

しかし、データはIEを除くすべてのブラウザにデータベースを正常に挿入しています。

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

前もって感謝します。

4

4 に答える 4

1

@davidrac が提案したように、以下のように JSONP を使用できます。

jQuery.ajax({
    type: 'POST',
    url: urlsearch,
    dataType: 'jsonp',
    jsonp: 'json.wrf'
    success: function (data) {   }
});

json.wrfSolr から適切にパディングされた応答を取得するには、コールバック関数の名前を使用してパラメーターをクエリ文字列に追加する必要があります。

于 2012-11-09T12:00:13.850 に答える
0

サーバーからの応答を出力する場合は、次のヘッダーを追加します。

Access-Control-Allow-Origin: *

これにより、IE の XHR が許可されます。詳細については、HTTP アクセス制御 (CORS)を確認してください。

PHP の場合は、次の方法で実行できます。

<?php
    header("Access-Control-Allow-Origin: *");
?>
于 2012-11-09T07:32:57.007 に答える
0

おそらく、JSONP またはその他の回避策を使用する必要があります。

問題の説明については、こちらこちらを参照してください。

于 2012-11-09T07:31:56.433 に答える
0

Access-Control-Allow-Origin: [Allowed origins]このコードは、IE が 8 以上で、サーバーの応答にHTTP ヘッダーが含まれている限り機能します。

If (XDomainRequet) {
   //just an example
  var xdr = new XDomainRequest();
  xdr.open("post", url);
  xdr.send();
}
else
{
  $.ajax({
    type: 'POST',
    url: urlsearch,
    dataType: 'json',
    success: function (data) {
    }
});
}
于 2012-11-09T07:45:53.093 に答える