jQuery AJAX简单的PHP Post无法正常工作

时间:2015-05-11 08:31:01

标签: php jquery ajax post ripple

我今天有一个非常基本的!我试图从jQuery发布到localhost上托管的PHP文件。

我的JS:

$("#searchNameButton").click(function() {
var name = $("#searchNameText").val();
 $.ajax({
        type: 'POST',
        url: 'localhost:8080/getNameInfo.php', // -> this works fine from the browser
        // data: { name: name }, -> commented out
        success: function(){
            alert('request successful');
        },
        error: function(xhr, textStatus, errorThrown){
            alert('request failed');
        }
  })
});

我的PHP文件(getNameInfo.php),一个非常基本的测试版本:

<?php
  echo 'TEST';
?>

在jQuery中,它总是会让我出错,说“内部服务器错误”。 我正在使用Ripple Emulator,这是控制台中出现的内容:

  

POST https://rippleapi.herokuapp.com/xhr_proxy?tinyhippos_apikey=ABC&tinyhippos_rurl=localhost%3A8080/getNameInfo.php   500(内部服务器错误)

我认为它必须做的更多,而不是文件中写的内容。有什么建议?谢谢!

编辑:发现这个:LINK但它无法解决我的问题。如果我按照这里所说的做,我就不会抛出任何错误(&#34;&#34;相反),但仍然会失败。

编辑2:如果我在Ripple中将跨域代理设置为本地(在上面的链接中建议)我得到了

  

选项http://localhost:4400/ripple/xhr_proxy?tinyhippos_apikey=ABC&tinyhippos_rurl=http%3A//localhost%3A8080/getNameInfo.php net :: ERR_CONNECTION_REFUSED

编辑3 :将我的网址更改为本地

  

C://Mobile//Cross-Platform//TestApp//www//php//getNameInfo.php

它现在正在工作。不知道如何使它在localhost上工作。 BUt现在将继续使用它,因为它只是一个学习应用程序。

2 个答案:

答案 0 :(得分:2)

getNameInfo.php文件顶部添加标题访问控制:

header('Access-Control-Allow-Origin: *');

答案 1 :(得分:0)

所以,最后我找到了解决方案。 即使它不是推荐的,也可以使用

运行Chrome
  

- 禁用-web的安全

允许我从 localhost:3000 调用 localhost:8080 上托管的PHP脚本,其中PhoneGap / Ripple Emulator保留。