如何使用Jquery ajax访问phpweb服务


how to access php web service with Jquery ajax

我有一个登录Web服务,我尝试使用Jquery Ajax进行访问。但我无法访问。我用了很多方法,但没有成功。请我帮忙

  1. 使用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);
    });
    
  2. 使用.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);