我有一个Web服务,它返回一个String Of JSON响应。当我尝试使用$ .ajax函数在我的网页中访问该响应时,它总是生成错误而没有任何响应终止..有人可以帮助我并告诉我们下面的代码中有什么错误。
function getdata() {
alert("start");
$.ajax({
type: "POST",
data: "{'value':'10'}",
url: "http://localhost:8080/RESTExample/parameter_url",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert("received "+data);
},
error: function (data) {
alert("error is "+data);
}
});
alert("end");
}
现在我有一个URL,提供直接访问的JSON响应**
“http://coenraets.org/apps/directory/services/getemployees.php”
**
我试图在我的JSP页面中以
的形式访问此数据 <script language="javascript">
$(document).ready(function()
{
$('#login').click(function(event){
event.preventDefault();
localStorage['serviceURL'] = "http://coenraets.org/apps/directory/services/getemployees.php";
var serviceURL = localStorage['serviceURL'];
alert("start");
$.ajax({
dataType: "jsonp",
url: serviceURL,
success :function SucceedFunc(data) {
alert("success");
console.log(data);
},
error : function(data, textStatus, errorThrown) {
alert("error");
console.log(data);
}
}).done(function ( data ) {
console.log(data);
});
});
});
</script>
<div class="main_div">
<div class="loginform">
<form>
<div class="login_btn">
<input type="submit" class="login" value="Login" id="login"/>
</div>
</form>
</div>
</div>
给出错误....现在任何人都可以帮助我访问这些数据.... PLS ......
答案 0 :(得分:2)
$.ajax({
dataType: "jsonp",
url: serviceURL
}).done(function ( data ) {
console.log(data);
});
试试这个
答案 1 :(得分:1)
简单来说:浏览器不允许来自域(例如something.com)的JavaScript访问来自其他域的任何数据(例如,something-different.com)。这是一个“同源政策”。
有一些方法可以避免这种情况。最简单的方法是使用所提到的jsonp,我引用Nisanth Sojan:
$.ajax({
dataType: "jsonp",
url: serviceURL
}).done(function ( data ) {
console.log(data);
});
但是jsonp有一些其他限制,例如。你不能做任何发布请求。执行此操作的一般方法是在请求所服务的服务器上支持CORS(因为它是有风险的)。
来源&amp;更多信息:http://webadvent.org/2011/cross-origin-ajax-with-cors-by-david-walsh
答案 2 :(得分:0)
您必须循环播放this fiddle
等每个项目$.ajax({
dataType:'jsonp',
url:"http://coenraets.org/apps/directory/services/getemployees.php",
success : function(data) {
$(data.items).each(function(index, employee) {
$('#employees').append($('<div />').text(employee.firstName));
});
}
});
});