Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-getJSON-won';无法在live url上工作_Javascript_Jquery_Getjson - Fatal编程技术网

Javascript jQuery-getJSON-won';无法在live url上工作

Javascript jQuery-getJSON-won';无法在live url上工作,javascript,jquery,getjson,Javascript,Jquery,Getjson,可能重复: 任何人都可以让我知道我做错了什么,我将不胜感激 这是本地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,

可能重复:

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

这是本地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'); 
    });
}) ();
(函数(){
var json_url='0http://localhost:8888/MOD/some-文件夹/app/mysql到json.php?page=index';
$.getJSON(json_url,函数(数据){
$。每个(数据、功能(i、项){
$(“#状态列表”)。追加(“
  • ”); }); $(“#状态列表”).listview(“刷新”); }); }) ();
    但是当我这么做的时候,我只是从本地主机的json_url更新了json_url为live url

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

    解释为脚本但使用MIME类型text/html传输的资源:“”

    使用实时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'); 
        });
    }) ();
    
    (函数(){
    var json_url='0http://www.live-server.com/app/mysql-to-json.php?page=index&callback=?';
    $.getJSON(json_url,函数(数据){
    $。每个(数据、功能(i、项){
    $(“#状态列表”)。追加(“
  • ”); }); $(“#状态列表”).listview(“刷新”); }); }) ();
    OP需要跨源脚本,而且几乎就要完成了,我们更改了PHP文件以生成JSONP:

    header('contentType: application/javascript');
    print $_GET["callback"]."(". json_encode($rows) .");";
    
    并将JavaScript更改回包含参数“&callback=?”

    (函数(){
    var json_url
    = 'http://www.live-server.com/app/mysql-to-json.php?"
    +“页面=索引&回调=?”;
    $.getJSON(json_url,函数(数据){
    $。每个(数据、功能(i、项){
    $(“#状态列表”)。追加(“
  • ”); }); $(“#状态列表”).listview(“刷新”); }); }) ();
    将其添加到标题上

    header('Content-type: text/javascript');
    
    如果您使用json文件,并且它在php上,那么它将生成json文件

    print $_GET["callback"]."(". json_encode($rows) .")";
    
    这是json文件url的末尾

    &callback=?
    

    非常感谢MHR解决了这个问题。。谢谢你,兄弟…-)

    在本地代码中,您执行了一个ajax json调用,但在实时代码中,您执行了一个完全不同的jsonp调用。资源/路径是否驻留在当前应用程序中?在这种情况下,您应该使用相对路径。不确定这是否是唯一的原因,但如果您控制了服务器,则应该为jsonp请求将响应的mime类型设置为“application/javascript”。您确定url实际上返回了jsonp吗?显然,如果jQuery在url中看到?callback,它会自动将请求视为jsonp。在这里,我的url内容类型text/html尝试按照我的回答中的建议将其设置为applicato/json,以消除页面检查时的警告,但数据仍然没有显示/still error。此错误。。资源被解释为脚本,但使用MIME类型text/html进行传输:“。“是的。。这里需要的不是脚本,而是引用脚本的html或php页面。如果您使用的是firefox,则可以使用forcecors插件对任何站点进行xmlhttprequest。安装后,单击视图=>toolbar=>add-on-bar。在屏幕的右下角,你可以看到“cors”,当你点击它时,它会变成红色。现在,您可以从任何站点到任何站点进行xmlhttprequest。我确实向php文件添加了标题,这是为了删除警告,但数据仍然没有显示或没有生成任何输出。
    &callback=?