私は数日間この問題に取り組んでおり、私の選択肢を使い果たしてしまったように感じたので、このフォーラムに連絡を取りました。Drupal 7 Webサイトでホストされているフォームがあり、フォームの値を外部URLに送信する必要があります。フォームはjQuery.AJAXを介してHTTPSプロトコルを介してPOSTリクエストを使用します
SCRIPT7002:XMLHttpRequest:ネットワークエラー0x2ef3、エラー00002ef3が原因で操作を完了できませんでした
私は以下を試しました:
contentTypeの追加:
// causes all of the jQuery callbacks to error out
"application/json; charset=utf-8",
(別のSOスレッドで提案されているように)実際のPOSTの前にAjax GET呼び出しを試行する
header( 'Content-Type: application/json; charset=utf-8' );
リクエストに追加されました
セットする crossDomain: true
適切なCORSヘッダーが追加され、フォームコードが以下に貼り付けられます。
$.ajax({
url: "[URL]", //the page to receive the form data
crossDomain: true,
type: "POST",
data: dataString, //posting to API
dataType: "json", //the data type the function should expect back from the server
success: function(data) {
if (data.response_status == "1") { //error for at least 1 field
//display error message
}
else {
//display thank you label next to input
}
} else {
//All form fields completed successfully! Redirect user to Thank you confirmation page
}
},
error: function(jqXHR, textStatus, errorThrown) {
alert("there is an error!");
console.log("in error section");
console.log("jqXHR: " + jqXHR);
console.log("jqXHR.responseText: " + jqXHR.responseText);
console.log("textStatus: " + textStatus);
console.log("errorThrown: " + errorThrown);
data = $.parseJSON(jqXHR.responseText);
console.log("parseJSON data: " + data);
}
});
});
});
SCRIPT7002を読みました:XMLHttpRequest:ネットワークエラー0x2ef3、エラー00002ef3が原因で操作を完了できませんでした
どんなガイダンスも役に立ちます!ありがとう
OPは、サーバーがHTTPS CertificateRequest
メッセージを使用して証明書を要求し、クライアントがすぐFIN
に接続を確立したことを示すWireSharkキャプチャを提供しました。
クライアント証明書を要求しないようにサーバーを構成した後、問題はなくなりました。
Fiddlerを使用すると、問題を解消することもできます。設定しない限り、Fiddlerがブラウザーにクライアント証明書を要求することはないためです。
影響を受けるクライアントマシンのみが一致する証明書を持っているかどうか、および/またはwithCredentials
CORS XHRリクエストのフラグがこのシナリオに関連しているかどうか疑問に思っています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加