0

这段代码有问题

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);
            }
         }
    });
}

我尝试了几件事,例如跨域:true、async:false 等...我尝试将其切换为 POST,但由于某种原因,如果我在新选项卡中触发调用,这个不会返回任何内容,我得到结果http:// www.bosscaffe.com/new/classes/getEnterijerPhotos.php?lang=en所以所有这些图像都准备好了,在我的本地实例上这可以工作,但在服务器上它根本不起作用,在 Chrome 中我得到状态 = 取消,任何关于这个的想法?

在任何情况下,最终解决方案都是将其传输到 JSON,但奇怪的是这样的功能不能在同一个域上运行。

4

2 回答 2

1

你在打跨域电话吗?=> 是您调用页面的来源,与MAIN_LOCATION(相同协议、相同域、相同端口)相同。

所以如果你是MAIN_LOCATION = 'http://www.bosscaffe.com/new/classes/getEnterijerPhotos.php?lang=en'那么调用页面需要从http://www.bosscaffe.com/...

如果它是一个跨源呼叫并且您想要修复它(而不将其移动到同一源),我在此处发布了关于该问题的答案

于 2012-09-11T15:23:51.467 回答
0

您没有提供足够的信息来回答您的问题,但这里有几点需要考虑:

您的第一行中有一个错字,您在画廊中有一个额外的“l”(el)。

如前所述,如果您希望回复是特定的数据类型,则需要将其列在 $.ajax() 的参数中,以便代码可以正确准备其结果。

为所有 AJAX 请求提供错误处理程序通常是个好主意,这样您就知道请求实际上已成功。在您的代码中,您的请求可能会失败(“静默”),而不会向您提供任何事实指示。

编辑

如果您从运行 PHP 服务器进程的同一主机发出请求,我怀疑您需要在 URL 中使用服务器的完全限定主机名而不是“localhost”。

于 2012-09-11T14:56:03.423 回答