2011-08-08 9 views
1

私はコードでクロスドメインコール作ってるんだ:JSONP parseerrror

$.ajax({ 
    type: "GET", 
    url: data.Url, 
    mimeType: "application/javascript", 
    dataType: "jsonp", 
    jsonp: false, 
    cache: true, 
    jsonpCallback: "getData", 
    success: function(data){ 
     callback(data.html); 
    }, 
    error:function (xhr, ajaxOptions, thrownError){ 
     alert('Error during downloading ebook component:'+ componentId + ' thrownError:' + thrownError); 
    } 
}); 

とサーバーの応答:

HTTP/1.1 200 OK 
x-amz-id-2: YIPtShlPtOmDcIvn3ldRVkONQJTDxFba7OFWnL44A5HVZFXL0+9gGTnO/uZ5muFi 
x-amz-request-id: AF6CF3B66F843250 
Date: Mon, 08 Aug 2011 11:32:52 GMT 
Last-Modified: Mon, 08 Aug 2011 11:24:51 GMT 
ETag: "ee72cfb6fea66192a34b4fa72796b260" 
Accept-Ranges: bytes 
Content-Type: application/octet-stream 
Content-Length: 30 
Server: AmazonS3 

getData({{"html":"example"}}) 

そして、あなたが推測することとしては、エラーハンドラがthrownErrorで実行されます。「のgetDataが呼び出されませんでした'とxhr.statusText:' parseerror 'です。

すべてのアイデア?私はかなりコードを実行していることを確かめています(私はリポジトリとコードを比較しましたが、diffrenceはありません)ので、私はそれがサーバレスポンスのものであると推測しています。

+0

なぜ 'JSONPです:'偽? – Eric

+0

私はこの質問を投稿して2分後、すごくうれしいです。 明らかにJSONオブジェクトが正しくないため、かっことセミコロンのペアが1つ必要です。 getData({"html": "example"}); – tekado

+0

@Eric jsonp:jqueryを追加したくないのでfalseですか?callback = ... urlには、このファイルがamazon S3に保存されているため、urlを変更しないでください。 – tekado

答えて

3

{{"html":"example"}}は有効なJSON構文ではないため、解析エラーが発生しています。

は、代わりにこれを試してみてください

{html:"example"}