0
Hayush! 一直试图将我的Chrome扩展程序转移到清单2.除了一个调用ajax的脚本外,一切正在工作。我有一个包含需要传输到服务器的JSON内容的变量。Chrome扩展程序传输到清单2 - 无Ajax响应
function sendlist(list){
jsontext = JSON.stringify(list);
$.ajax({
url: amfurl + "user/listbookmarks/",
dataType: 'text json',
async: true,
type: 'POST',
processData: false,
data: {'folders': jsontext},
success: function(data){
$('#importing').css('display','none');
$('#importdone').css('display','block');
console.log(data);
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
});
}
出于某种原因,ajax部分根本不被执行。没有错误消息被触发,也没有在服务器错误日志中。
popup.js中包含了所有内联脚本和脚本。所以这可能不是问题。
有什么想法?
谢谢!
下面的代码工作完全在以前的清单
function importbookmarks(){
$('#formadd').css('display','none');
$('#importing').css('display','block');
_gaq.push(['_trackEvent', 'chromextension','importbookmarks', username]);
chrome.bookmarks.getTree(function(bookmarks) {
sendlist(bookmarks);
});
}
function sendlist(list){
jsontext = JSON.stringify(list);
$.ajax({
url: amfurl + "user/listbookmarks/",
dataType: 'text json',
async: true,
type: 'POST',
// processData: false,
data: {'folders': jsontext},
success: function(data){
$('#importing').css('display','none');
$('#importdone').css('display','block');
console.log(data);
}
});
}
工作,不要使用eval的代码,但'JSON.parse'(EVAL由默认CSP禁止)。您正在执行JSONP请求而不是JSON的任何更改?您是否在清单文件中请求主机权限? – 2013-05-06 15:29:11
用JSON.parse替换了eval。在异步之上应用jsonp:false,并在权限中设置页面。似乎它根本不执行ajax。页面上的其他脚本也可以工作。 – Row1e 2013-05-08 15:56:29
您是否在您的最后评论中使用'书签'而不是'jsonlist'? – 2013-05-08 15:58:37