Javascript jsonp和REST得到调用
我有两个项目,一个旧的,可以用,一个新的。两个项目都必须进行跨域调用 在旧项目中,我使用jsonp与服务器对话并获得响应,例如:Javascript jsonp和REST得到调用,javascript,jquery,ajax,rest,jsonp,Javascript,Jquery,Ajax,Rest,Jsonp,我有两个项目,一个旧的,可以用,一个新的。两个项目都必须进行跨域调用 在旧项目中,我使用jsonp与服务器对话并获得响应,例如: var myUrl = "http://www.myserver.whatever/somepage.php"; jsonp(myUrl, "ajaxResponse"); function ajaxResponse(data) { alert(data.response); } 在我新的完全不相关的项目中,我必须与服务人员交谈。该网页是客户端上与软件供应商编写的
var myUrl = "http://www.myserver.whatever/somepage.php";
jsonp(myUrl, "ajaxResponse");
function ajaxResponse(data) { alert(data.response); }
在我新的完全不相关的项目中,我必须与服务人员交谈。该网页是客户端上与软件供应商编写的CentOS守护进程对话的本地文件。我可以通过REST GET调用与守护进程通信。调用的一个示例是,当我在Mozilla Firefox浏览器窗口中输入以下内容时,它可以工作:
本地主机:8080/mfds/info
我认为与守护进程通信的最简单方法是通过jsonp,就像我之前所做的那样,因此:
var myUrl = "http://localhost:8080/mfds/info";
jsonp(myUrl, "ajaxResponse2");
function ajaxResponse2(data) { alert(data.response); }
遗憾的是,我从未使用过ajaxResponse2函数。我做错了什么?jsonp不是REST GET调用吗?如何修复代码
我正在使用:
<script type="text/javascript" src="js/jsonpCrossDomain.js"></script>
来自$.ajax调用的错误消息:
{readyState:0,状态:0,状态文本:[异常…\\nsresult:\0x805e0006\location:\js frame::file:///home/user/Documents/myproejct/js/jquery-2.0.3.min.js ::第6行\data:no]}jsonp本质上只是一个javascript文件请求。有效的jsonp响应是javascript,它使用包含所需数据的参数执行特定函数。如果服务没有返回有效的jsonp,那么就不能使用jsonp。远程服务必须支持jsonp。看起来这个没有。您的最佳选择可能是服务器端代理。您是对的。守护进程端不支持jsonp。我没有意识到双方都必须给予支持。有人特别告诉我,只有休息时间。仍然存在跨域问题。我不知道你所说的服务端代理是什么意思。创建一个ajax调用,调用服务器上的服务,该服务调用远程服务,并将响应传回。这是因为服务器端跨域调用不受同源策略的限制;创建守护进程并与之交互,以及其他一切。我只想通过JavaScript进行跨域跨端口的调用。
$.ajax({
url: 'localhost:8080/mfds/info',
type: "GET",
dataType: "html",
error: function (error)
{
alert(JSON.stringify(error));
},
complete: function (data_response)
{
alert(data_response.responseText);
},
success: function (data)
{
alert(data);
}
});