访问REST服务的另一台服务器
问题描述:
我有一个JavaScript方法摘录如下访问REST服务的另一台服务器
var tempUrl = "http://A.com:8081/TestService/serviceMethod";
jQuery.ajax({
url:tempUrl,
type: 'POST',
data:"getDatareq="+encodedata,
contentType: 'application/json',
dataType:'text',
success:function(result){
jQuery(".loadingMsg").html("");
jQuery(".loadingMsg").hide();
getApptDtls(result);
},
complete:function(result){
jQuery(".loadingMsg").html("");
jQuery(".loadingMsg").hide();
jQuery(".popupContent").show();
jQuery.unblockUI();
我包括在HTML了这种方法,当我运行这个网站网址为http://B.com:8081
在另一个服务器托管并调用此方法,A.com中的serviceMethod没有被击中。这里可能是什么问题?
任何帮助,非常感谢。
答
使用JSONP。
JSONP或“带填充的JSON”是JavaScript中使用的通信技术。它提供了一种方法来请求来自不同域中的服务器的数据,这是由于相同的源策略而被典型的Web浏览器所禁止的。
的jQuery:
var tempUrl = "http://A.com:8081/TestService/serviceMethod";
$.ajax({
url:tempUrl,
dataType: 'jsonp', // Notice! JSONP <-- P (lowercase)
success:function(json){
// do stuff with json (in this case an array)
alert("Success");
},
error:function(){
alert("Error");
},
});
PHP:
<?php
$arr = array("element1","element2",array("element31","element32"));
$arr['name'] = "response";
echo $_GET['callback']."(".json_encode($arr).");"; // 09/01/12 corrected the statement
?>
将JSONP的岗位工作。我已经尝试与POST相同。但它不工作。我应该使用jSon回拨吗? – NishM 2013-04-12 17:54:22
对不起后期更新。 jSonP工作。 – NishM 2015-01-27 19:41:51