-1

重複の可能性:
JSONPリクエスト:「リソースはスクリプトとして解釈されますが、MIMEタイプtext/htmlで転送されます」</a>

誰でも私がここで間違っていることを教えていただければ幸いです。

これは、ローカルURL/localhostにjsonファイルを含むコードです。そして、これは問題なく動作します

(function() {
    var json_url = 'http://localhost:8888/MOD/some-folder/app/mysql-to-json.php?page=index';

    $.getJSON(json_url, function(data){
        $.each(data, function(i, item) {
            $('#state-list').append('<li><a href="display.html?state=' + item.d_state  + '" data-transition="slide" rel="external">' + see_abbrv(item.d_state) + '</a></li>');
        });
        $('#state-list').listview('refresh'); 
    });
}) ();

しかし、これを行うと、ローカルホストのjson_urlからライブURLにjson_urlを更新しました。

データは表示されません。そして、私がページを調べようとしたときに警告があります:

リソースはスクリプトとして解釈されますが、MIMEタイプtext / htmlで転送されます:" http://www.live-server.com/app/mysql-to-json.php?page=index&callback=jQuery18201751285600475967_1360047415705&_=1360047415772 "。

ライブURLで更新されたコード:

(function() {
    var json_url = 'http://www.live-server.com/app/mysql-to-json.php?page=index&callback=?';

    $.getJSON(json_url, function(data){
        $.each(data, function(i, item) {
            $('#state-list').append('<li><a href="display.html?state=' + item.d_state  + '" data-transition="slide" rel="external">' + see_abbrv(item.d_state) + '</a></li>');
        });
        $('#state-list').listview('refresh'); 
    });
}) ();
4

2 に答える 2

1

OPにはクロスオリジンスクリプトが必要で、ほぼそこにありました。PHPファイルを変更してJSONPを生成しました。

header('contentType: application/javascript');
print $_GET["callback"]."(". json_encode($rows) .");";

また、JavaScriptを元に戻して、パラメーター「&callback =?」を含めました。

(function() {
    var json_url 
        = 'http://www.live-server.com/app/mysql-to-json.php?"
            +"page=index&callback=?';
    $.getJSON(json_url, function(data){
        $.each(data, function(i, item) {
            $('#state-list').append('<li><a href="display.html?state=' 
                + item.d_state  
                + '" data-transition="slide" rel="external">' 
                + see_abbrv(item.d_state) + '</a></li>');
        });
        $('#state-list').listview('refresh'); 
    });
}) ();
于 2013-02-05T07:21:07.277 に答える
0

これをヘッダーに追加します

header('Content-type: text/javascript');

これは、出力でjsonファイルを生成する場合に使用し、php上にある場合に使用します。

print $_GET["callback"]."(". json_encode($rows) .")";

そしてこれはjsonファイルのURLの終わりに

&callback=?

この問題を解決してくれたMHRに100万人ありがとう..たくさんの仲間に感謝します..:-)

于 2013-02-05T09:11:30.000 に答える