如下,所以我该怎么用ajax跨域POST数据呢?

我在js中用xmlhttprequest对象向node.js服务端发送POST请求,数据全部是json格式,但是因为前端和服务端没部署到一个域下,结果访问前端的时候就提示is not allowed by Access-Control-Allow-Origin……

烙印99
浏览 109回答 2
2回答

慕娘9325324

一般是用jsonp,原理很简单,比如你在A域名请求B域名:1. 在A域名的页面中使用script标签src写成B域名中服务器的URLscript标签是可以跨域的,比如你调用Google Map或Google Analytics时引入的js就是google域名下的。2. 后端程序在最后需要把一段js代码的字符串print出来,这样就可以运行A域名js中写好的callback方法,将要返回的数据放入参数就可以了A域名中的js文件:<script&nbsp;type="text/javascript"&nbsp;src="http://www.b.com/action?callback=myCallback"></script><script&nbsp;type="text/javascript"> &nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;myCallback&nbsp;(data)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(data); &nbsp;&nbsp;&nbsp;&nbsp;}</script>B域名中服务器String&nbsp;cb&nbsp;=&nbsp;get('callback'); Int&nbsp;b&nbsp;=&nbsp;'return&nbsp;data';print('<script&nbsp;type="text/javascript">&nbsp;'&nbsp;+&nbsp;cb&nbsp;+&nbsp;'('&nbsp;+&nbsp;b&nbsp;+&nbsp;');&nbsp;</script>');后端print数据到页面中后就会这样<script&nbsp;type="text/javascript"> &nbsp;&nbsp;&nbsp;&nbsp;myCallback('return&nbsp;data');</script>

翻阅古今

我做过这样的jsonp 很简单的 服务器返回的js本插入到头部补充下服务器端 以java 为例子struts.xml 代码<action name="xx" class="xxx" method="xxxx"><result name="success" type="json"><param name="callbackParameter">callback</param> <!-- callback 可以是自己定义的请求参数--></result></action>这样就Ok了
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript