HTML、jQuery Mobile、jQuery、Cordova を使用してアプリを作成しています。私の要件は、リモート サーバーを呼び出してアプリからユーザーを認証することです。私はローカルホストの WAMP スタックを開発しています。
私のjQueryは以下の通りです。
$.ajax({
type: 'POST',
url: 'http://localhost/server/',
crossDomain: true,
data:{appkey:'1234567',action:'authenticate', username: u, password :p},
dataType: 'jsonp',
async: true,
success: function (data){
console.log(data);
},
error: function (jqXHR, textStatus, errorThrown) {
alert("Invalid Username or Password");
window.location = "index.html";
}
});
リモート通話のURLは以下です。JQuery は自動的に ?callback= をリモート URL に追加します。これは、データ型が jsonp であるためです。これで問題ありません。
localhost/server/?callback=jQuery18306688079617451876_1383495199431…4567&action=authenticate&username=fdf&password=fdfdf&_=1383495208981
リモート URL からの応答は、Chrome デベロッパー コンソールで次のようになります。
{"success":"false"}
サーバーの PHP 部分では、以下のコードを使用して json オブジェクトを返しています。
header('Content-type: application/json');
echo json_encode($araryVal);
すべてが完璧であるように見えますが、コードのブレークポイントが ajax 呼び出しの成功セクションに到達しません。エラーセクションで常に発生します。
開発者コンソールにエラー メッセージが表示されます。
Uncaught SyntaxError: Unexpected token :
JsonLint は、json が有効であると言います。私が愚かなことをしていることを教えてください。