0

Androidエミュレーターでjsonpを使用してサービスを呼び出そうとしています:

    bindEvents: function() {
        document.addEventListener('deviceready', this.onDeviceReady, false);
    },

    onDeviceReady: function() {
        app.receivedEvent('deviceready');
    },

    receivedEvent: function(id) {
        console.log('Received Event: ' + id);

        $.ajaxSetup ({  
            cache: false  
        });

        $.ajax({
            type: "GET",
            url: "http://10.0.2.2/uk-en/login/user",
            dataType: "jsonp",
            contentType: "application/json",
            success: function(xml){
                $("#result").html('123');
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) { 
                $("#result").html('XMLHttpRequest = ' + JSON.stringify(XMLHttpRequest) + ", textStatus = " + textStatus + ', errorThrown = ' + JSON.stringify(errorThrown));
            } 
        });
    }

phonegap サイトのドキュメントに従って、HelloWorld アプリ作成でこれを行っています。私index.htmlはこれに似ています:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
    <link rel="stylesheet" type="text/css" href="css/index.css" />

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <title>Hello World</title>
</head>
<body>
    <div class="app">
        <div id="result">

        </div>
    </div>
    <script type="text/javascript" src="cordova-2.2.0.js"></script>
    <script type="text/javascript" src="js/index.js"></script>
    <script type="text/javascript">
        app.initialize();
    </script>
</body>

これは、ローカル マシンの Firefox からは機能しますが、次のエラーが表示されます。

XMLHttpRequest = {"READYSTATE":4,"STATUSTEXT":"SUCCESS"},TEXTSTATUS = PARSERERROR, ERRORTHROWN = {"MESSAGE":JQUERY1830456564654_32131 WAS NOT CALLED", "STACK":"ERROR:JQUERY1830456564654_32131 WAS NOT CALLED"\N AT FUNCTION.ERROR(http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js:2:13215)

誰でも助けてください。

4

1 に答える 1

0

JSONP応答をある種のコールバック関数でラップする必要があります。

これはすべて、別のドメインからコンテンツを取得していることを前提としています。もしそうなら、あなたは同じオリジンポリシーによって制限されています:

したがって、サーバーは次のように応答する必要があります。

urFunction({....});
于 2013-01-11T12:26:36.177 に答える