可能重复:
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');
});
}) ();
答案 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解决这个问题..感谢一大堆兄弟......: - )