chrome extension开发中,用jQuery.post()提交表单数据失败,chrome开发工具中的status显示cancelled,怎么破?

2013-08-03 19:40:03 +08:00
 zippera
我是在本地调试的,action中的url是http的。找到一些资料说chrome不支持跨域访问(file和http)。

有一个办法是使用get而非post。使用post就没法本地调试吗?有什么解决的办法?
6798 次点击
所在节点    程序员
13 条回复
mkeith
2013-08-03 20:49:56 +08:00
后台post
zippera
2013-08-03 21:24:32 +08:00
@mkeith 能再详细点吗?
shiny
2013-08-03 22:19:23 +08:00
Chrome扩展开发里,允许 post 是因为声明了需要的权限。在普通的 web 环境里是有严格的安全限制的。
你所说的「本地调试」是指以 HTML 文件的方式调试吗?那还是搞成扩展吧,两者的环境差距还是很大的,而且在扩展里照样可以用审查元素。
jesse_luo
2013-08-04 04:17:08 +08:00
改成ip访问形式试试……
如果你是content script,默认是可以跨域的,只是要在manifest里加入权限,如:
"permissions": [
"tabs",
"http://*.duokan.com/"
]
zippera
2013-08-04 10:32:35 +08:00
@shiny 我在本地调试用html文件直接打开、用本地加载扩展、用localhost的方法都不行,服务器地址是https的
zippera
2013-08-04 10:33:58 +08:00
@jesse_luo ip访问试了试,还是不行。没有用content script,加入url的权限后还是不行。请问除了$.post()外,还可以用别的方法提交吗?
zippera
2013-08-04 10:35:24 +08:00
错误信息:
XMLHttpRequest cannot load https****. Origin http://127.0.0.1 is not allowed by Access-Control-Allow-Origin.
jyhmijack
2013-08-05 14:57:02 +08:00
v8全是异步无阻塞的,把你post后面的内容全部写在post的回调里面就好了。
otakustay
2013-08-05 15:23:51 +08:00
撞上XMLHttpRequest的跨域安全性了
你的服务器要接受一个OPTIONS(不是POST,是OPTIONS)请求,并在这个请求中返回一个HTTP头Access-Control-Allow-Origin: *;然后这个post请求才能成功
zippera
2013-08-05 20:18:03 +08:00
@jyhmijack
@otakustay
已经在服务器端设置Access-Control-Allow-Origin: *。也已经尝试用post的回调函数,还是无法提交。

使用的代码类似 $.post( url, term,function(data){alert("dlg");} );功能是提交登录表单。

奇怪的是,账号密码错误的时候能顺利执行,正确的时候就出现错误(如下)。(错误的时候response的页面跟提交的url一样;正确的时候会有个页面跳转,会不会是这个问题?)

错误信息截图如下:

gangsta
2013-08-05 22:27:33 +08:00
Content Script+1,直接支持跨域,不受同源策略的限制
ysdj
2013-08-05 22:28:53 +08:00
chrome扩展似乎不支持https跨域?
scofier
2014-11-17 11:51:46 +08:00
我用$.post("xxx",
{"title":d.title,"url":d.url,"content":con},function() {
alert("ok");
});

发现con字段太大,字符串长度8000多, 就执行不了, 难道chrome扩展里面post限制了长度? 纯浏览器执行jquery的post是可以正常post数据的, 有人遇到过这种问题吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/77886

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX