1

ajaxを使用してjavascriptからWebサービスを呼び出す必要があります。

$.ajax({
    type: "GET",
    url: "http://[REMOTE-SERVER-IP]:8080/api/service",
    contentType: "application/jsonp",   
    crossDomain: true,
    success: successFunc,
    error: errorFunc
});

メソッドへのアクセスを許可するには、サーバーhttp:// [REMOTE-SERVER-IP]:8080 /crossdomain.xmlに「crossdomain.xml」を作成する必要があることを読みました。

<cross-domain-policy>
   <allow-access-from domain="[SERVICE-CALLER-IP]"/>
</cross-domain-policy>

しかし、それを実行した後、メソッドを呼び出そうとすると、javascriptデバッガーから次のエラーが発生します。

XMLHttpRequest cannot load http://[REMOTE-SERVER-IP]:8080/[URL]. Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin

私は何を悪いのですか?

どうもありがとうございます!!!

4

1 に答える 1

4

ここでは 2 つのオプションを選択できますが、どちらもサーバーにアクセスできることを前提としています。

  • 最初のオプションは、callback=?要求 URL にパラメーターを追加し、サーバーの応答を変更することです。サーバーは、次の形式でコールバック関数を応答に追加する必要があります

    callback_function_coming_from_url([your_server_response])

  • 2 番目のオプションはAccess-Control-Allow-Origin: *、サーバーの応答にヘッダーを追加することです。または、次のようにアドレスを指定できますAccess-Control-Allow-Origin: [your_client_address]

私はオプション 2 を好みます。これは、タスクを達成するのに便利な方法であり、サーバーの応答を制御できるため、オプション 1 よりもはるかに安全だからです。

CORSから追加情報を取得できます

于 2012-11-15T09:59:00.813 に答える