2013-04-11 112 views
1

我有一个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没有被击中。这里可能是什么问题?

任何帮助,非常感谢。

回答

1

使用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 
?> 
+0

将JSONP的岗位工作。我已经尝试与POST相同。但它不工作。我应该使用jSon回拨吗? – NishM 2013-04-12 17:54:22

+0

对不起后期更新。 jSonP工作。 – NishM 2015-01-27 19:41:51

相关问题