-1

これは以前は機能していましたが、どういうわけか機能しなくなりました。Uncaught ReferenceError: msg is not defined (success 関数を参照) が発生します。サーバーがダウンしているため、成功するはずがありません。サーバーが稼働していても、同じエラーが発生します。

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),

    });

}

タイムアウトの可能性があるため、このコードを使用することをお勧めします。しかし、また..同じエラー、完了セクションで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まだ定義されていない の戻り値を設定していました。


どちらの場合も、同じオリジン ポリシーの対象となる可能性があります。別のオリジンに送信された JSON リクエストの結果を JavaScript で読み取ることができるのは、離れたサイトでCORS ヘッダーが設定されている場合のみです。

于 2012-11-25T12:41:51.183 に答える
0

ご回答ありがとうございます。問題は解決しました。この経験の後で私が知っていることは、wamps allow origin policy が localhost のみに設定されていることです。phonegaps allow origins ポリシーは * に設定されています

これは機能しています:

    $.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 に答える