-1

可能重复:
JSONP 请求:“资源解释为脚本,但使用 MIME 类型文本/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 更新为来自 localhost 的 json_url 的 live url。

数据不会显示。当我尝试检查页面时出现警告:

资源解释为脚本,但使用 MIME 类型 text/html 传输:“ http://www.live-server.com/app/mysql-to-json.php?page=index&callback=jQuery18201751285600475967_1360047415705&_=1360047415772 ”。

使用实时网址更新代码:

(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');

如果您使用它并且它在 php 上,那么它会在输出生成 json 文件。

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

这到 json 文件的 url 的末尾

&callback=?

感谢一百万 MHR 解决了这个问题.. 谢谢一堆兄弟.. :-)

于 2013-02-05T09:11:30.000 回答