2016-03-22 4 views
3

I持っている問題は、私はAjaxの入手方法は動作しません

$.ajax({ 
    url: request, 
    type: "get", 
    contentType: "application/json; charset=utf-8", 
    dataType: "jsonp", 
    success: function (data) { 
     if (data.ResultCode==="200") { 
      console.log(data.Result[0]); 
     } 
     else if (data.ResultCode !== "200") { 
      myApp.alert(data.ResultDesc, ""); 
     } 

    }, 
    error: function() { 
     console.log("your call failed"); 
     myApp.alert("Sunucuya erişilemiyor.",""); 
    } 
}); 

が、これは私が書いた私のコードで、APIからJSONデータを取得しています、私は

Uncaught SyntaxError: Unexpected token :

URLのようなエラーが発生しています正しいです、私は問題を見ることができません。データ型::dataType

+0

が、これは完全なエラーメッセージがありますか?たとえば、PHPで、あなたはこのような何かを行うことができますか構文エラーのようです –

+0

あなたのリソースがjsonpリクエストをサポートしていないようです...ネットワークのタブを使ってレスポンスの内容を確認してください –

答えて

1

変更ソースがデータを共有するためにその端部にCORSを有効にしていないときに、このエラーが発生し

i did write like this but i got error Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. so i changed to jsonp

:「JSON」、

あなたの最後のコメントを1として異なるドメイン間でソースにアクセスできる場合は、CORSを有効にすると、データが取得されます。

別の方法として、サーバーでプロキシを作成し、それを呼び出して他のサーバーからデータを取得することもできます。

//fetch.php 
<?php 
    header('Content-Type: application/json'); 
    $homepage = file_get_contents('http://www.example.com/'); 
    echo json_encode($homepage); 
?> 

今、あなたがデータを提供するために、このファイルを呼び出すことができます:

var request = 'fetch.php'; 
$.ajax({ 
    url: request, 
    type: "get", 
    //contentType: "application/json; charset=utf-8", // not needed in this case 
    dataType: "json", // <----this has to be json 
    success: function (data) { 
     if (data.ResultCode==="200") { 
      console.log(data.Result[0]); 
     } 
     else if (data.ResultCode !== "200") { 
      myApp.alert(data.ResultDesc, ""); 
     } 
    }, 
    error: function() { 
     console.log("your call failed"); 
     myApp.alert("Sunucuya erişilemiyor.",""); 
    } 
}); 
+0

おそらく彼は 'jsonp'のリクエストをしていますが、これはエラーの理由はありません –

+0

まず、しかし、私はエラーが発生しました。プリフライト要求に対する応答がアクセス制御チェックを通過しません:要求されたリソースに 'Access-Control-Allow-Origin'ヘッダーがありません。したがって、原点「ヌル」はアクセスが許可されません。だから私はjsonpに変更しました –

+0

それはCORSのエラーです。 CORSがソースで有効になっている場合は、サーバーにプロキシをセットアップしてデータを取得する必要があります。 – Jai