0

我的 Web 服务出现问题,我无法从远程位置使用它。

这是我的代码:

<script>
$("form").submit(function (event) {
event.preventDefault();
var result = new XMLHttpRequest;
var URL="http://www.webservice.nextstagecode.com/checkUser.ashx?user=" + $('#email').val() + "&password=" + $("#pass").val();

result.open("GET", URL,false);
result.send();
var resultString = JSON.parse(result);

var sample = [];

for (var n = 0; n < resultString.length; n++) {
    sample[n] = { respuestalocal: resultString[n].respuesta };
}

if (sample[0].respuesta == 1) {
    $(location).attr('href', 'menu.html');
}
else {
    $("#error").css("text-align", "center").css("font-size", "0.6em").css("color", "red").html("Usuario o clave incorrecta");
}</script> 

例如,这是一个你可以尝试的user=prueba@cuenta.com& 。password=prueba

4

2 回答 2

1

你有(至少)两个我可以看到的问题:

  1. 同源政策。由于同源策略,您不能用于XMLHttpRequest从其他域请求数据。如果您可以控制其他域并且可以限制对较新浏览器的访问,则可以使用跨域资源共享

  2. 尝试XMLHttpRequest用作字符串。

    var resultString = JSON.parse(result);
    

    视为result字符串,但result不是字符串;它是一个XMLHttpRequest对象。相反,您可能打算使用result.responseText,这一个字符串。

于 2013-06-07T03:42:16.943 回答
0

如果您尝试进行跨域 AJAX 调用,则需要使用JSONP而不是 JSON,因为Same-Origin Policy

如果您在同一个域中,请确保您发送回适当的标头,对于 json/jsonp,这些标头将是:

header('content-type: application/json; charset=utf-8');

它应该放在 php 文件的开头。

还要确保您发送回的数据使用 php.ini 中的json_encode()函数以 JSON 格式正确编码。

于 2013-06-07T03:44:11.057 回答