-1

这曾经有效,但不知何故它不再有效。我得到一个 Uncaught ReferenceError: msg is not defined (它指的是成功函数) 奇怪的是,它不应该成功,因为服务器已关闭。即使服务器已启动,它也会给我同样的错误。

function login(user, pass){

    $.ajax({
        type: "GET",
        url: "http://XX.XX.XXX.XX:8080/wcf/Service1.svc/HentBruger",
        data: '{"username":"'+user+'", "password":"'+pass+'"}',
         processData: true,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: loginsuccess(msg),
        error: loginfailed(msg),

    });

}

我更喜欢使用这段代码,因为它给了我超时的可能性。而且..同样的错误,在完成部分中没有定义味精

    $.ajax({
    type: "GET",
    url: "http://XX.XX.XXX.XX:8080/wcf/Service1.svc/HentBruger",
    data: '{"username":"someuser", "password":"somepass"}',
    timeout:5000
}).done(function( msg ){
   alert( msg );
}).fail(function(jqXHR, textStatus){
    if(textStatus == 'timeout')
    {     
        alert('Failed from timeout'); 
        //do something. Try again perhaps?
    }
});
4

2 回答 2

1

改变

    success: loginsuccess(msg),
    error: loginfailed(msg),

    success: loginsuccess,
    error: loginfailed,

loginsuccess您没有设置为回调,而是设置了 , 的返回loginsuccess(msg)msg但仍未定义。


在这两种情况下,您都可能受制于同源策略:只有在远程站点设置了CORS 标头时,您才能在 javascript 中读取发送到另一个源的 JSON 请求的结果。

于 2012-11-25T12:41:51.183 回答
0

感谢您的所有回复。问题已解决。我不知道如何,在这次经历之后我知道 wamps 允许来源策略仅设置为 localhost。并且 phonegaps 允许来源策略设置为 *

这是什么工作:

    $.ajax({
    type: "POST", //This was set to GET
    url: "http://XX.XX.XXX.XX:8080/wcf/Service1.svc/HentBruger",
    data: '{"username":"something", "password":"somepass"}',
    contentType: "application/json; charset=utf-8", //I've forgot those
    dataType: "json", //I've forgot those
    timeout:5000 
}).success(function( msg ){
   document.write(msg);
}).fail(function(jqXHR, textStatus){
alert(textStatus); //returns an error, not timeout. But i am recieving something on failure..
    if(textStatus == 'timeout')
    {     
        alert('Failed from timeout'); 
        //do something. Try again perhaps?
    }
});

此外,我已将允许来源策略 * 添加到我的 IIS 服务器。不知道这是否做了什么。

于 2012-11-25T15:31:59.953 回答