jQuery getJSON不能在live url上运行

时间:2013-02-05 07:06:17

标签: javascript jquery getjson

  

可能重复:
  JSONP request: “Resource interpreted as Script but transferred with MIME type text/html”

任何人都可以让我知道我做错了什么在这里将不胜感激。

这是本地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从jhost_url更新为localhost。

数据不会显示。当我试图检查页面时有警告:

  
    

资源解释为脚本,但使用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'); 
    });
}) ();

2 个答案:

答案 0 :(得分:1)

OP需要跨源脚本,几乎就在那里,我们更改了PHP文件以生成JSONP:

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

并将JavaScript更改为包含参数“&amp; 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'); 
    });
}) ();

答案 1 :(得分:0)

在标题

上添加此项
header('Content-type: text/javascript');

并在输出生成json文件时使用它,如果它在php上。

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

这是json文件的URL的结尾

&callback=?

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