我想在 google chrome 扩展中发送 jQuery Ajax HTTP 请求。我导入了 jQuery 库,并使用了以下代码:
$.ajax({
method: "PUT",
url: "https://spreadsheets.google.com/feeds/cells/"+id+"/od6/private/full/"+cell,
headers: {'If-Match': '*'},
contentType: 'application/atom+xml',
data: data
}).done(function(msg) {
alert("Data Saved: "+JSON.stringify(msg));
}).fail(function(e){
alert("There was a problem!\n"+JSON.stringify(e));
})
但每当我尝试时,它都会向我显示一条消息:
There was a problem!
{"readyState":0,"status":0,"statusText":"error"}
但是当我在扩展程序之外运行相同的 HTML 页面(已导入此 javascript 代码)(作为单个 html 页面)时,我没有收到此消息,我每次都成功。
为什么会发生这种情况?如何在我的扩展程序中发送此请求?
注意:我不使用 XMLHttpRequest() 的原因是因为我必须随请求单独发送 header 和数据(这是 google Sheets api 所需的 <entry>...</entry>
标记)。我不知道如何在 XMLHttpRequest() 中做到这一点。如果 XMLHttpRequest() 有效,请给我一个使用 XMLHttpRequest() 发送 header 和数据的代码示例。
最佳答案
在你的 mainifest 文件中尝试更改
"permissions": [
"storage",
"activeTab",
"tabs",
"https://ajax.googleapis.com/"
]
至
"permissions": [
"storage",
"activeTab",
"tabs",
"https://ajax.googleapis.com/",
"https://*.google.com/"
]
关于javascript - 无法在 Chrome 扩展内发送 jQuery Ajax HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34012655/