1

我有一个小问题。我正在连接到提供 JSON 结果并尝试解析结果的 Web 服务。该代码在我的本地主机(wamp 服务器)上运行良好,但代码不能在我尝试的任何网络托管帐户上运行。这是提供 JSON 的 url

http://mohamedbadr.com/webservice/list.php

这是我试图获取结果的文件:

http://contestlancer.com/web/getList.php

下面是 Getlist 文件的代码:

    <!DOCTYPE HTML>
<html>
<head>
<title>Hotel Promotion List</title>
<script type="text/javascript" src="jquery.js"></script>
<link rel="stylesheet" type="text/css" href="style.css"/>
<script type="text/javascript">
function getList()
{
var i=0;

var ntable="<table><thead><tr><th>Image</th><th>Name</th><th>Rating</th><th>Highlights</th></tr></thead><tbody>";
$.getJSON("http://mohamedbadr.com/webservice/list.php", function(data){
    $.each(data.promos, function(key, value) {

ntable+="<tr><td><a href='promotion.php?id="+value.promo.id+"'><img src='"+value.promo.image+"' height='100' width='150'/></a></td><td><a href='promotion.php?id="+value.promo.id+"'>"+value.promo.name+"</a></td><td> "+value.promo.stars+"</td><td> "+value.promo.highlights+"</td></tr>";       
});

ntable+="</tbody></table>";
    $("#content").html(ntable);
});


}
</script>
</head>
<body onLoad="getList()">
<div id="wrapper">

    <div id="content"></div>

</div>


</body>
</html>

很可能没有打开 url 有什么解决方案?任何帮助将不胜感激

4

2 回答 2

2

它不起作用,因为您正在发出跨域请求。域 A 到域 B。

尝试http://mohamedbadr.com/webservice/list.php在打印任何输出之前添加它。

header('Access-Control-Allow-Origin: http://contestlancer.com');
于 2013-07-21T17:04:57.167 回答
0

正如 Nadh 所提到的,这是由于跨域请求。更多信息@HTTP 访问控制。了解同源请求

由于您使用的是 jQuery getJson(),因此您也可以尝试这种方法

var url =  "http://mohamedbadr.com/webservice/list.php";
$.getJSON(url + "?callback=?", null, function(data) {
    ... Success Logic here...
});

?callback=?url 末尾的 会将您的请求转换为 JSONP 。如果您删除它,这将是一个普通的 Ajax 调用。

了解JSONP

——阿文德。

于 2013-07-21T17:21:49.663 回答