0

ajax call以下のスクリプトを使用して別のサーバーに送信しています。

$(document).ready(function() {
var uniqcod=$(".piczhu-widget").attr('id'); 

    $.ajax({
        url:'File Path...',
        type:'post',
        data:{uniId:uniqcod},
        success: function(result){
            $('.abcClass').html(result);
            }
        });
    });

スクリプトが応答を受信して​​いません。このスクリプトは、同じサーバー上で正常に動作しています。別のサーバーで呼び出しを送信するために使用する追加のパラメーターはありますか?

4

4 に答える 4

1

これにより、 JSONPを使用して問題が修正されるはずです。

$.ajax({
    url:'File Path...',
    type:'post',
    data:{uniId:uniqcod},
    dataType: 'jsonp', // use JSONP
    success: function(result){
        $('.abcClass').html(result);
        }
    });
});
于 2013-04-08T05:44:27.230 に答える
1

これはクロスドメイン ポリシーによるものです。セキュリティの事です。サーバー (ドメイン) にある cURL を使用して、その要求を PHP ファイルに送信することをお勧めします。

ただし、サーバーに cURL をインストールする必要があります: http://curl.haxx.se/ Debian ベースのサーバーを使用している場合は、sudo apt-get install php5-curl で実行できます。

例:

<?php
$data = $_POST['data'];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "URL FOR REQUEST");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);    
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                                                                                                                           

$result = curl_exec($ch);

echo $result;

?>
于 2013-04-08T05:52:13.273 に答える
0

クロスドメイン ajax には jsonp または cors のいずれかを使用する必要があります。以下のコードは、cors の例です。

コード例:

jQuery.support.cors = true; 

function CrosDom_ajax(url) {
        if (window.XDomainRequest
        && $.browser.msie
        && $.browser.version < 10) {
        xdr = new XDomainRequest();
        if (xdr) {
            xdr.onload = function () {
               alert(xdr.responseText);

            };
            xdr.open("get", url);
            xdr.send();
        }
        }
        else {
            $.ajax({
                url: url,
                success: function (response) {


                },
                error: function (data) {
                }
            });
         }
    }

また、クロスドメインアクセスを許可するには、サーバー側で次のコードを記述する必要があります

Response.AppendHeader("Access-Control-Allow-Origin", "*");           
于 2013-04-08T05:41:36.563 に答える
0

最良かつ受け入れられている方法は、JSONP を使用して別のサーバーと通信することです。JSONP は、クロスドメイン スクリプティング エラーを回避するのに最適です。

以下のリンクを読んでください

JSONP とは何ですか?

jqueryを使用したjsonp

JSON と JSONP の違いは何ですか?

http://api.jquery.com/jQuery.getJSON/

于 2013-04-08T05:43:18.810 に答える