0

jquery を使用してローカルの webservice/webApi を呼び出そうとしていますが、何日も立ち往生しています。誰か助けてください。

したがって、私のWebサービスはlocalhostポート4011、つまりlocalhost:4011/api/poi/に座っています

そして、私の JavaScript はローカル ホスト ポート localhost:4213/ にあり、これを呼び出す方法は次のとおりです。

    $.get('http://localhost:4011/api/values', function (data) {
        alert(data);
    });        

URLをブラウザに直接入力すると、結果が返されました。しかし、jqueryを使用して呼び出すとき。応答がありません (開発者ツールから見て)。

何が間違っているのかわかりません。助けてください。

それが役立つ場合、私は webApi mvc .net4 を使用しています。

4

3 に答える 3

1

CrossDomain は jQuery では機能しないため、CrossDomain を使用している場合はこれを使用してください。

$.ajax({
    url: 'ajax/test.html',
    crossDomain: true,
    success: function(data) {
        alert(data);
    }
});
于 2012-06-27T04:23:13.377 に答える
1

これは、Same origin ポリシーによるものです。API は、Web ページを提供している場所とは別のポートにあるため、ブラウザーは要求を行うことを許可しません。

jsonp を使用してこれを回避するか、Web サービスでクロス オリジン ポリシーを使用することができます。

于 2012-06-27T04:19:19.410 に答える
0

クロス オリジン ポリシーCORSによって制限される場合があります。ドメイン全体からのリクエストを受け入れるように Web サービスを構成します。Access-Control-Allow-Origin次のようなヘッダーを追加できます

responseMessage.Headers.Add("Access-Control-Allow-Origin","*");
于 2012-06-27T04:16:55.840 に答える