为了账号安全,请及时绑定邮箱和手机立即绑定

Chrome插件开发,使用JSONP跨域请求,回调函数未定义?

Chrome插件开发,使用JSONP跨域请求,回调函数未定义?

交互式爱情 2019-03-21 18:15:21
先附上代码:插件代码片段:    $.getJSON("http://crazywe.sinaapp.com/orderprice?callback=?", function(data){             alert("test");    }); manifest.json 片段:    "content_scripts": [        {            "css": ["css/iwlw.css"],            "matches": ["http://*/*","https://*/*"],            "js": ["js/jquery-2.1.1.min.js","js/anpai.js"]        }    ],    "permissions": [        "tabs",        "http://*/*",        "https://*/*"    ]后台java代码:        resp.setContentType("text/javascript");        resp.setHeader("Access-Control-Allow-Origin", "*");        PrintWriter out = resp.getWriter();        out.println(req.getParameter("callback") + "(" + resultJSON.toString() + ");");        //out.println("orderpriceforanpai(" + resultJSON.toString() + ")");        out.flush();        out.close();现在本地调试没有问题,但是把jsonp的代码封装到chrome插件之后报错如下:is not defined是在解决不了,求大神点解!!!
查看完整描述

2 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

感觉chrome插件完全可以跨域的情况下,完全用不上jsonp


查看完整回答
反对 回复 2019-04-13
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

你这个jsonp失败大概是因为chrome扩展的内容安全策略

简单来后,就是不允许使用跨站脚本,不幸的是这正是jsonp的执行基础。


事实上,你这扩展画蛇添足的地方太多了

首先,chrome扩展完全不需要jsonp这么个东西,你直接请求json就行了。

其次


"permissions": [

        "http://*/*",

        "https://*/*"

    ]

resp.setHeader("Access-Control-Allow-Origin", "*");

你两个只要使用了一种

xhr就能直接跨站了,别的都不需要。


查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 1142 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信