一尘不染

IE10 / 11 Ajax XHR错误-SCRIPT7002:XMLHttpRequest:网络错误0x2ef3

php

我已经解决了这个问题几天,并在这个论坛上进行了接触,因为我觉得我已经筋疲力尽了。我在Drupal
7网站上托管了一个表单,需要将表单值提交到外部url。该表单通过jQuery.AJAX通过HTTPS协议使用POST请求

  • 表格可以在Chrome,Firefox和Safari中正常运行
  • 我在IE10 +控制台中收到以下错误(使用IE10 +时,ajax调用总是进入错误功能):

SCRIPT7002:XMLHttpRequest:网络错误0x2ef3,由于错误00002ef3而无法完成操作

我尝试了以下方法:

  • 添加contentType:

    // causes all of the jQuery callbacks to error out
    

    “application/json; charset=utf-8”,

  • 在实际POST之前尝试Ajax GET调用(如另一个SO线程上所建议)

  • 添加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);                           
    }        
    });         
  });
});

任何指导都会有所帮助!谢谢


阅读 845

收藏
2020-05-29

共1个答案

一尘不染

OP提供了WireShark捕获,该捕获显示服务器使用HTTPS CertificateRequest消息请求证书,然后客户端立即FIN建立连接。

配置服务器不请求客户端证书后,问题消失了。

使用Fiddler也会使问题消失,因为除非您进行配置,否则Fiddler绝不会从浏览器请求客户端证书。

我想知道是否只有受影响的客户端计算机具有匹配的证书,并且/或者withCredentials在这种情况下CORS XHR请求上的标志是否相关。

2020-05-29