我正在使用此功能向使用XHR
和非传统端口的服务器发送HTTPS
请求: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);
}
在我的manifest
我已将权限设置为"*://*/*"
{
"name": "Test Extension",
"manifest_version": 2,
"version": "2.0",
"description": "Extension Admin Util.",
"devtools_page": "background.html",
"content_scripts": [
{ "matches": ["http://*/*"], "js": ["content_script.js"] }
],
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"*://*/*",
"tabs"
]
}
XHR
正在返回0
并使用开发者工具,网络标签显示它是cancelled
我做错了什么?
答案 0 :(得分:1)
我不认为非常规端口是问题所在。
当我在链接或按钮事件上发出请求时,通常会发生这种情况,我不删除事件的默认操作,页面更改并取消AJAX请求。
如果这是您的问题,请在点击事件中使用event.preventDefault();
,如下所示。
$('a.action-foo').click(function(event){
event.preventDefault();
//Make your AJAX request
});