我使用 AJAX 来获取我命名为变量 myPubscore 的数据。现在我尝试将 myPubscore 发送到另一个 js 文件。 myPubscore 在 Ajax 中打印得很好,但是当我在 sendResponse 之前打印时,我收到“事件处理程序中的错误:ReferenceError:myPubscore 未定义”。
如何将 myPubscore 从 AJAX 中取出并放入 sendResponse 中?我阅读了关于这个问题的另一篇 SO 帖子,但受访者提到答案已经贬值。
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.type == "articleUrl") {
console.log("background heard articleUrl")
console.log(request);
var articleUrl = request;
$.ajax({
type: 'POST',
url: `${url}/buttoncolor`,
data: articleUrl,
success: function urlFunction(data) {
var myPubscore = data;
console.log("myPubscore in ajax:")
console.log(myPubscore);
}
})
console.log("myPubscore in sendresponce:")
console.log(myPubscore);
sendResponse({score: "myPubscore"});
}
更新了background.js
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.type == "articleUrl") {
console.log("background heard articleUrl")
console.log(request);
var articleUrl = request;
$.ajax({
type: 'POST',
url: `${url}/buttoncolor`,
data: articleUrl,
success(data){
console.log("incoming data");
console.log(data);
sendResponse(data);
console.log("sent data");
},
});
return true;
}
内容.js
chrome.runtime.sendMessage({ "type": "articleUrl", "url": url }, function (response) {
console.log("here's the response for sending the URL");
console.log(response);
});