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=?