我开发了一个Chrome扩展程序,它可以截取当前选项卡,并按计划通过ajax将其上载到服务器。它在我用来测试它的两台服务器上完美工作,但是当我转换到新服务器时,ajax调用现在产生了403个错误。Chrome扩展程序Ajax调用返回403
我可以看到的唯一更改是新服务器具有SSL证书,但允许普通的http访问。另外,我有一个我没有配置任何SSL的测试子域。
我上传脚本如下:
var xhr = new XMLHttpRequest(), formData = new FormData();
xhr.addEventListener("load", processSuccess);
xhr.addEventListener("error", processError);
formData.append("img", screenshotUrl);
formData.append("auth_string", auth_string);
formData.append("site", site);
xhr.open("POST", upload_url, true);
xhr.send(formData);
在我的表现,我有以下权限:
"permissions": [
"activeTab",
"tabs",
"<all_urls>",
"alarms",
"storage",
"http://**********" //the url to the script
]
具体网址是矫枉过正我认为,鉴于<all_urls>
权限,我尝试使用http和https。
我知道存在安全内容调用或引用不安全脚本或资源的复杂问题,但我认为使用https配置的服务器不会影响任何内容。
该页面是浏览器可访问的,并且具有与最后两台服务器相同的权限。
控制台的错误,我得到的是:
POST https://****/upload_string.php 403 (Forbidden)
(anonymous function)
target.(anonymous function)
safeCallbackApply
handleResponse
我在一个小时前就明白了这一点。 Namecheap阻止了我的ajax调用。谢谢! – kchason