服务器迁移后出现奇怪的javascript/json错误
我有一个托管在服务器a上的网站,它向服务器B上的网站发送请求 服务器B上的网站最近已移动到另一台服务器。让我们称之为服务器C 由于服务器迁移,请求的信息不再显示在服务器A上 服务器A用于发送请求的javascript如下所示:服务器迁移后出现奇怪的javascript/json错误,javascript,jquery,jsonp,Javascript,Jquery,Jsonp,我有一个托管在服务器a上的网站,它向服务器B上的网站发送请求 服务器B上的网站最近已移动到另一台服务器。让我们称之为服务器C 由于服务器迁移,请求的信息不再显示在服务器A上 服务器A用于发送请求的javascript如下所示: <script type="text/javascript"> jQuery(document).ready(function() { var ppUrl = 'http://www.nowgamernetwork.com/
<script type="text/javascript">
jQuery(document).ready(function() {
var ppUrl = 'http://www.nowgamernetwork.com/widgets/index.php?widget=popular&sourcetag=/other/&callback=jsonp1372412035546&_=1372412036723';
jQuery.getJSON(ppUrl, function(data) {
jQuery('.ipPopularPosts').append(data.content);
});
});
</script>
<script type="text/javascript">window.jQuery || document.write("<script src='http://www.nowgamernetwork.com/js/libs/jquery-1.5.1.min.js'>\x3C/script>")</script>
但当网站请求这些信息时,我会收到以下javascript错误:
Resource interpreted as Script but transferred with MIME type text/html: "http://www.nowgamernetwork.com/widgets/index.php?widget=popular&sourcetag=/other/&callback=jsonp1372416916349&_=1372416917575". jquery.js:3501
Uncaught SyntaxError: Unexpected token < index.php:1
资源解释为脚本,但使用MIME类型text/html传输:http://www.nowgamernetwork.com/widgets/index.php?widget=popular&sourcetag=/other/&callback=jsonp1372416916349&_=1372416917575". jquery.js:3501
未捕获的语法错误:意外标记
上面的错误与index.php上的第1行有关,如下所示:
<script type="text/javascript">
jQuery(document).ready(function() {
var ppUrl = 'http://www.nowgamernetwork.com/widgets/index.php?widget=popular&sourcetag=/other/&callback=jsonp1372412035546&_=1372412036723';
jQuery.getJSON(ppUrl, function(data) {
jQuery('.ipPopularPosts').append(data.content);
});
});
</script>
<script type="text/javascript">window.jQuery || document.write("<script src='http://www.nowgamernetwork.com/js/libs/jquery-1.5.1.min.js'>\x3C/script>")</script>
window.jQuery | | document.write(“\x3C/script>”)
出于某种原因,服务器A不喜欢它从服务器C得到的响应以“\x3C/script>
看到问题了吗?\x3C/script>
看到问题了吗?修复了它
服务器C上的PHP脚本使用“ob_get_contents”将所有html转换成json格式。我注意到ob_start丢失了,所以我添加了它,现在它以正确的格式返回数据
由于某种原因,服务器B不需要ob_启动就可以工作。修复了它
服务器C上的PHP脚本使用“ob_get_contents”将所有html转换成json格式。我注意到ob_start丢失了,所以我添加了它,现在它以正确的格式返回数据
出于某种原因,服务器B不需要ob_启动就可以工作。- 在url中使用&callback=?'
- 数据类型:“jsonp”
(函数($){
var url='1〕http://www.nowgamernetwork.com/widgets/index.php?widget=popular&sourcetag=/other/&callback=?';
$.ajax({
键入:“GET”,
url:url,
async:false,
JSONPCCallback:'jsonCallback',
contentType:“应用程序/json”,
数据类型:“jsonp”,
成功:函数(json){
$(document.body).html(json.content)
},
错误:函数(e){
控制台日志(e.message);
}
});
})(jQuery);
- 在url中使用&callback=?'
- 数据类型:“jsonp”
(函数($){
var url='1〕http://www.nowgamernetwork.com/widgets/index.php?widget=popular&sourcetag=/other/&callback=?';
$.ajax({
键入:“GET”,
url:url,
async:false,
JSONPCCallback:'jsonCallback',
contentType:“应用程序/json”,
数据类型:“jsonp”,
成功:函数(json){
$(document.body).html(json.content)
},
错误:函数(e){
控制台日志(e.message);
}
});
})(jQuery);
传递有效的JSON,这应该可以解决问题,如果是跨域的,则传递有效的JSONP?我不需要更改任何代码,因为它在服务器B上工作得非常好。现在代码托管在服务器C上,它已经停止工作了吗?也许这是一个服务器配置问题?传递有效的JSON,这应该可以解决问题,如果它是跨域的,则传递有效的JSONP?我不需要更改任何代码,因为它在服务器B上工作得非常好。现在代码托管在服务器C上,它已经停止工作了吗?也许这是一个服务器配置问题?我不应该更改任何代码,因为它在服务器B上工作得很好。现在代码托管在服务器C上,它已经停止工作了?可能是服务器配置问题?好的,但我不确定\x3C/script>
是否有效。我不应该更改任何代码,因为它在服务器B上工作得很好。现在代码托管在服务器C上,它已经停止工作了吗?可能是服务器配置问题?好的,但我不确定\x3C/script>
是否有效