【发布时间】:2012-01-23 19:52:01
【问题描述】:
我正在编写一个 Google Chrome 扩展程序。我想用 jQuery 使用 jsonp 跨域通信。这是ajax代码:
$.ajax({
type : 'POST',
url : $(this).attr('action'),
data : $(this).serialize(),
contentType: 'application/json; charset=utf-8',
dataType : 'jsonp',
success : function() {
alert('A');
}
});
这调用了这个 URL:
服务器用这个数据回答 200 OK:
jQuery1710883696963544935_1327347078860({"messages":["Minden mez\u0151 kit\u00f6lt\u00e9se k\u00f6telez\u0151!"],"errorCount":1})
之后,我收到以下错误消息:
Can't find variable: jQuery1710883696963544935_1327347078860
我尝试了所有方法,但我无法理解问题所在。请帮帮我!
请注意,我编写了服务器端代码,因此也可能存在问题。
提前致谢!
【问题讨论】:
-
您是否在
content_script内拨打此电话? -
JSONP request in chrome extension, callback function doesn't exist? 的可能重复项(这似乎回答了问题)
-
@abraham:是的,我是通过内容脚本进行此调用的。
-
@duskwuff 这正是我的问题。不幸的是,这并不能回答我的问题。我正在为几个网络浏览器(Opera、Safari、Firefox)制作这个扩展,并不是每个浏览器都使用沙盒。我在 Safari 上测试了这段代码,同样的问题。并且 Safari 不使用沙盒。所以必须有办法克服这个问题。
标签: javascript jquery google-chrome-extension jsonp