此代码存在问题
var MAIN_LOCATION = "http://www.bosscaffe.com/new/";
$("#gallery_page").click(function() {
$('#gallery_photos').show();
getPhotos();
return false;
});
function getPhotos()
{
$.ajax({
type: "GET",
url: MAIN_LOCATION + "classes/getEnterijerPhotos.php?lang="+LANG,
success: function(msg){
if (msg != 'nothing')
{
$('#photo_wrapper').empty();
$('#photo_wrapper').append(msg);
}
}
});
}
我尝试过像crossdomain这样的东西:true,async:false等等...我试图将它切换到POST,但是由于某种原因,如果我在新标签中触发调用,这个没有返回任何内容,我得到结果{ {3}}所以所有这些图片都准备好了,在我的本地实例上它可以正常工作但在服务器上根本没有,在Chrome中我得到状态=已取消,对此有任何想法吗?
在任何情况下,最终解决方案都是将其转移到JSON,但奇怪的是这样的功能在同一个域上不起作用。
答案 0 :(得分:1)
您正在拨打cross origin电话吗? =>是您的调用页面的来源与MAIN_LOCATION
相同(相同的协议,相同的域,相同的端口)。
因此,如果您是MAIN_LOCATION = 'http://www.bosscaffe.com/new/classes/getEnterijerPhotos.php?lang=en'
,则调用页面需要以http://www.bosscaffe.com/...
如果它是一个跨越来源的电话并且您想要修复它(不将其移动到同一个来源)我在该问题上发布了答案here
答案 1 :(得分:0)
您没有提供足够的信息来回答您的问题,但有以下几点需要考虑:
你的第一行有一个拼写错误,你在胆汁中有一个额外的'l'(el)。
如前所述,如果您希望回复是特定的数据类型,则需要在$ .ajax()的参数中列出它,以便代码可以正确地准备其结果。
在所有AJAX请求上提供错误处理程序通常是个好主意,因此您知道请求实际上已成功。在您的代码中,您的请求可能会失败(“默默地”),而不会向您提供任何事实的指示。
修改
如果您是从运行PHP服务器进程的同一主机发出请求,我怀疑您需要在URL中使用服务器的完全限定主机名而不是“localhost”。