Javascript Chrome扩展XMLHttpRequest使用HTTPS和非常规端口返回0

Javascript Chrome扩展XMLHttpRequest使用HTTPS和非常规端口返回0,javascript,google-chrome-extension,xmlhttprequest,Javascript,Google Chrome Extension,Xmlhttprequest,我正在使用此函数向使用HTTPS和非常规端口的服务器发送XHR请求:https://www.example.com:10000/request.php function AJAXInteraction(url, callback, str) { var xhr = new XMLHttpRequest(); xhr.open("POST", url, true); xhr.setRequestHeader("Content-Type", "application/x-www-form

我正在使用此函数向使用
HTTPS
和非常规端口的服务器发送
XHR
请求:
https://www.example.com:10000/request.php

function AJAXInteraction(url, callback, str) {
  var xhr = new XMLHttpRequest();
  xhr.open("POST", url, true);
  xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
  xhr.onreadystatechange = function() {
    if (xhr.readyState == 4) {
       var resp = JSON.parse(xhr.responseText);
       approveResponse (resp);
    }
  }
  xhr.send(str);
}
在我的
清单中
我已将权限设置为
“*://*/*”

XHR
正在返回
0
,使用开发者工具,“网络”选项卡显示它已被
取消


我做错了什么?

我不认为非传统端口是问题所在

这通常发生在我对链接或按钮事件发出请求时,我没有删除事件的默认操作,页面更改并取消AJAX请求

如果这是您的问题,请使用
event.preventDefault()单击事件,如下所示

$('a.action-foo').click(function(event){
    event.preventDefault();
    //Make your AJAX request
});

Pssst。你的问题缺少一个问题。另外,您是否可以在Chrome的Dev/Canary版本中测试它,以确保它不是已经修复的bug?服务器使用什么类型的证书?您的浏览器信任它吗?它是自签名的,但浏览器信任它(绿色的
https
符号)您如何调用AJAXInteraction函数?@javsmo->
var ajax=new AJAXInteraction(url、ApproverResponse、querystr)
$('a.action-foo').click(function(event){
    event.preventDefault();
    //Make your AJAX request
});