我有一个登录Web服务,我尝试使用Jquery Ajax进行访问。但我无法访问。我用了很多方法,但没有成功。请我帮忙
-
使用getJSON
$("#login").click(function () { var url = 'http://localhost:8080/vrm/web_services/login?data=[{"email":"gaurav.gautam@mailinator.com","password":"123456","device_token":"GLKOS58GDG549853JSFJSBMSMSG"}]'; jQuery.getJSON(url+"&callback=?", function(data) { alert("Success" + data.id); });
-
使用.ajax()
var markers = [{ "email": "gaurav.gautam@mailinator.com", "password": "123456","device_token":"GLKOS58GDG549853JSFJSBMSMSG" }] $.ajax( { // url: 'http://localhost:8080/vrm/web_services/login?data=[{"email":"gaurav.gautam@mailinator.com","password":"123456","device_token":"GLKOS58GDG549853JSFJSBMSMSG"}]', uri:'http://localhost:8080/vrm/web_services/login', type: "GET", contentType: "application/json; charset=utf-8", dataType: "jsonp", data: JSON.stringify({ data: markers }), processdata:true, jsonpCallback: 'mycallback', success : function(data) { var json = $.parseJSON(data); $('#items').html(json); alert(json); }, error : function(req, status, ex) { alert("Lol" + ex); } });
我还使用了dataType:"json",但没有得到request.status 0并且当使用dataType:"jsonp"获取错误"无效标签"
首先,如果您指定dataType:"json",那么您不需要在其中调用$.parseJSON(data)
,jQuery将自动解析json,data
将是一个JavaScript对象(当然,一旦成功)。
我建议在Firefox或Safari中使用Firebug或Chrome的开发工具(在Safari中,转到"首选项"、"高级",选中"在菜单栏中显示开发菜单"。然后选择"开发菜单"->"显示错误控制台")。然后,您可以插入像console.log(data)
这样的日志记录语句来查看返回的内容,或者查找控制台中打印的错误。您还可以转到开发人员检查器中的"网络"选项卡,查看通过网络发送的内容。这应该有助于你缩小问题范围。
ajax不允许跨域。。
我有一种方法可以解决这个问题:
用js创建了一个脚本标签,如下所示:
var sc=document.createElement('script');
var url="http://localhost:8080/vrm/web_services/login?data=[{"email":"gaurav.gautam@mailinator.com","password":"123456","device_token":"GLKOS58GDG549853JSFJSBMSMSG"}]";
sc.setAttribute('src',url);
document.body.appendChild(src);