使用jquery从javascript到php进行AJAX调用

使用jquery从javascript到php进行AJAX调用,php,javascript,jquery,ajax,.post,Php,Javascript,Jquery,Ajax,.post,作品: 我编写了上面的函数来在页面上运行php脚本,并通过URL将变量photo_id和username传递给脚本。如上所述,当我硬编码它时,它工作得很好,但当我给它javascript变量时(如您在getURL中所看到的),它根本不工作。例如,这是我想做的,但不起作用: function jsUpvote(photo_id, username) { //var getURL = "http://www.uglyfacez.com/gallery/upvote.php?

作品:

我编写了上面的函数来在页面上运行php脚本,并通过URL将变量photo_id和username传递给脚本。如上所述,当我硬编码它时,它工作得很好,但当我给它javascript变量时(如您在getURL中所看到的),它根本不工作。例如,这是我想做的,但不起作用:

    function jsUpvote(photo_id, username) {

        //var getURL = "http://www.uglyfacez.com/gallery/upvote.php?photo_id=" + photo_id + "&username=" + username;

        $.get("http://uglyfacez.com/gallery/upvote.php?photo_id=15&username=user000",
            function(returnValue){
                // do stuff here
        });
    }
为什么这不起作用?解决方案是什么


编辑:我发现了问题所在。出于某种原因,在我的GET url中包含www可以防止它接收来自服务器的响应。一旦从URL中删除,它就可以正常工作。

您是否正确设置了照片id和用户名??更多的代码可能会有所帮助。错误信息是什么?您是否使用Firebug或Chrome查看是否出现错误??似乎照片id和/或用户名未正确传入。

这似乎是跨域请求的一个问题

您可以使用一些解决方案,例如JSONP,也可以从不同的域加载script(在本例中:
www
子域)。要查看有关跨域的不同方面和设置,请转到(并搜索“跨域”或“跨域”)

该问题基本上是一个与同源政策相关的问题。在您可以阅读的网页上:

  • 由于浏览器的安全限制,大多数“Ajax”请求都会受到以下限制:;请求无法从其他域、子域或协议成功检索数据
  • 脚本和JSONP请求不受同源策略限制

以下是jquery.get函数的sysntax:

获取(url[,数据][,成功(数据,文本状态,jqXHR)][,数据类型])

比如:

$.get("http://www.uglyfacez.com/gallery/upvote.php?photo_id=" + photo_id + "&username=" + username,
            function(returnValue){
                // do stuff here
        });
尝试遵循语法,首先将数据放在函数的参数上,我认为此链接也可能对您有所帮助:


或者,如果仍然遇到相同的问题,请尝试再次在浏览器上手动打开链接,并检查它是否返回任何错误,以确保它返回预期的输出。:)

是的,照片id和用户名都已传入并正确设置。如果我发出警报(getURL);它提供了我想要的确切url。如果我把15作为photo_id,user000作为username,它会给我上面写的确切URL。我正在使用的代码已经没有了。您可以在这里看到错误:函数(returnValue)块中的代码根本不运行。我正在使用Firebug进行调试。这是我的下一个问题。您是否使用任何类型的工具来查看从URL发送或返回的内容?我仍然在想,可能有一个空间或什么东西被遗漏了。在我的浏览器中手动打开链接工作正常,不会导致任何错误。这就是我如何知道我的.get调用有问题的原因。当代码被触发时,您是否看到firebug上有任何错误,如果它在您执行请求的实际站点上运行良好,那么它是由您的javascript代码上的错误引起的,如果firebug返回任何javascript错误,最好将其发布在此处,这样我们可以更容易地检测问题。:)我很抱歉你这么想,但如果它起作用,我就不会在这里。@RussellStrauss:Tomalak试图说“它不起作用”是一个完全无用的说法,无助于解决问题。一般认为,OP会提供有关错误的完整信息,并在发布之前在调查问题方面做出一些努力。其他人都在为解决这个问题付出时间,所以OP方面的一些最小努力是非常受欢迎的。对不起,我的意思是“代码块没有执行,我不知道为什么。”我不知道我第一次没有提到这一点。
$.get("http://www.uglyfacez.com/gallery/upvote.php", {'photo_id':photo_id,'username':username},
            function(returnValue){
                // do stuff here
        });