1

私は現在、このように設定されたjQuery ajaxリクエストを持っています

$(document).ready(
    function() { $.ajax({ 
        url : "http://www.my-computer.com:51000/getJson",
        cache : false,
        dataType: "json",
        success : renderPage,
        error: handleError
    })
});

手動でhttp://www.my-computer.com:51000/getJsonに移動すると、json 文字列が正しく返されることがわかりますが、上記の要求では、常に「handleError」メソッドに陥り、textStatus が「error」になります。あまり役立つ情報ではありません。誰でも助けることができますか?ありがとう!

編集: my-computer ドメインについては申し訳ありません。このスタックオーバーフローの送信では localhost を入力できないため、代わりに任意のドメインを入力しました。私はfirebugを試しましたが、jsonを取り戻すことができませんでした。

4

2 に答える 2

0

以下を含むルートに clientaccesspolicy.xml ファイルを追加しようとしましたか?

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

また、デバッグの目的でエラー メッセージを表示するために div を使用しています。これは、JSON 文字列のエラー メッセージを確認するのに役立つ可能性があるためです。

function GetShoppingCartData() {
    jQuery.ajax({
        type: "POST",
        url: "DesktopModules/EcomDnnProducts/AjaxProductDisplay.aspx/GetShoppingCartData",
        data: "{'CartId': '" + jQuery(".shoppingcartid").attr("value") + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: true,
        cache: false,
        success: function (msg) {
            buildShoppingCart(msg.d);
        },
        fail: function (msg) {
            jQuery('#productattributesdata').text(msg.d);
        }
    });
}

私の .net コードでは、web.config ファイルに以下を追加する必要がありました。

    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
  <system.web>

h番目

于 2012-09-04T03:23:00.060 に答える
-3

あなたのコードは壊れています。{よりも1 つ多いことに注意してください}。コード化した方法はすべて間違っています。また、このリクエストをどのドメインから送信しようとしていますか? my-computer.com 以外のドメインから送信している場合、リクエストは失敗します。そうでない場合は、これを試してください:

$(document).ready( function () {
$.ajax({

        url : "http://www.my-computer.com:51000/getJson",
        キャッシュ : 偽、
        データ: "json",
        成功: renderPage、
        エラー: ハンドルエラー
    }))
});
于 2012-09-04T00:28:25.057 に答える