这是我第一次在stackoverflow上发帖,所以请耐心等待。我目前正在为Android构建混合HTML5应用程序,我有一个需要传递给服务器的javascript变量。我这样做是通过发出一个AJAX请求并指定一个PHP文件作为代理来绕过Same-Origin策略。然而,这提出了一个令人惊讶的问题。我的AJAX get方法不会返回我的PHP文件的结果(如果要运行它),而是文件本身。
这是AJAX代码:
function connect(trimmedData) {
$.ajax({
type: 'get',
url: 'php/SOAPProxy.php',
dataType: 'json',
error: function (x, y, z) {
alert(y + '\n' + z);
console.log(y + '\n' + z);
},
data: { 'method': 'checkUser', 'args': { 'name': 'email', 'value': trimmedData } },
success: function (data) {
$("#mainpage").append("Success");
$("#mainpage").append(data);
},
failure: function (data) {
$("#mainpage").append("FAILURE");
}
});
}
PHP代码:
<?php
$client = new SoapClient("someURL");
$m=$_GET['method'];
if(isset($_GET['args'])){
$result = $client->$m(array($_GET['args']['name']=>$_GET['args'] ['value']));
}
else{
$result = $client->$m();
}
$j = json_encode($result)
print $j;
?>
根据我见过的例子,这应该有效,但显然情况并非如此。有人可以给我任何关于我可能出错的地方吗?
谢谢!
附加信息:这些都是正在运行的SOAP请求,输入是用户电子邮件,响应是某种字符串。
将数据类型设置为&#34; text&#34;奇怪的是,并没有返回整个文件,而是从$ m(数组开始)返回所有内容。仍在尝试确定原因。