2012-01-28 19 views
1

によって許可されていませんこれは私のために働いていないのjQueryの一部です:クロスドメインAJAXリクエスト:起源のhttp:// ...は、アクセス制御 - 許可 - 起源

$.ajax({ 
    crossDomain: true, 
    type: "POST", 
    url: "https://www.testdatasolutions.com/reportgw", 

    data: "ACCOUNT=creditreport123&PASSWD=asdj97sdf&PASS=2&PROCESS=PCCREDIT&NAME=Robert+Ice&SSN=891-42-3221&ADDRESS=111+W+8th+St&CITY=Fantasy+Island&STATE=IL&ZIP=60750&BUREAU=TU&PRODUCT=CREDIT&DEFAULTOUTPUT=XML" 
}) 

.done(function(msg) { 
    alert("Data Saved: " + msg); 
}); 

出力エラーメッセージ:

XMLHttpRequestはhttps://www.testdatasolutions.com/reportgwをロードできません。 Origin http://pmr.techforge.usは、Access-Control-Allow-Originによって許可されていません。

同様のトピックはhereですが、出力がJSONの場合のみに適用されます。

私の質問は、XMLを返すクロスドメインのajaxリクエストを処理することが可能かどうか、またはは絶対にJSONPを使用する必要がありますか?

+0

また、私はあなたの例でリクエストしてみましたが、サーバーは「無効なアカウント」ページを返します。実際に何が起こっているかを見るためにエラーハンドラをあなたのajax呼び出しに追加してください。 – Juank

+0

@Juankプロキシの背後にいるわけではないからです。 – Tool

答えて

1

これはJSONPである必要があります。デフォルトでは、ドメイン間のリクエストにXMLは使用できません。

しかし、少しのサーバー側プログラミングでは、プロキシを作成し、自分のドメイン内のサーバー側でcurlなどでデータをロードし、XMLとして出力することができます。こうすることで、自分のドメイン内のURLにアクセスすることができ、クライアントからのクロスドメイン要求を行う必要がなくなり、「舞台裏で」処理されます。

関連する問題