Ajax调用PHP服务跨域[重复]
Posted
技术标签:
【中文标题】Ajax调用PHP服务跨域[重复]【英文标题】:Ajax call PHP Service cross domain [duplicate] 【发布时间】:2014-08-23 16:33:04 【问题描述】:我开始开发应用程序,但登录时遇到问题。
我有一个表单,其中包含对 php 服务的 Ajax 调用来验证用户,我将两个文件都上传到了我的服务器,它运行良好。我输入用户名和密码,进入 PHP 文件并验证用户,到目前为止一切顺利。
问题是这两个文件将位于不同的服务器中。现在我将 PHP 文件托管在我的服务器上,并且 form/ajax 调用 localhost 并且它不起作用。
代码如下:
PHP:
<?php
header('Content-type: application/json');
$server = "localhost";
$username = "****";
$password = "****";
$database = "*****";
$con = mysql_connect($server, $username, $password) or die ("Error: " . mysql_error());
mysql_select_db($database, $con);
$user = mysql_real_escape_string($_POST["user"]);
$pass = mysql_real_escape_string($_POST["pass"]);
$result = mysql_query("SELECT * FROM Usuarios WHERE IdUsuario = '" . $user . "' AND Clave = '" . $pass . "'");
$numResults = mysql_num_rows($result);
echo $numResults;
mysql_close($con);
?>
JS:
$( document ).ready(function()
$('form').submit(function(event)
event.preventDefault();
var user = $(this).find("#user").val();
var pass = $(this).find("#pass").val();
$.ajax(
type: 'POST',
crossdomain: true,
data: 'user=' + user + '&pass=' + pass,
url: 'http://www.url.com/login.php',
success: function(data)
if(data == 1)
alert("YES!");
else
alert("NO");
,
error: function()
alert('Error');
);
return false;
);
);
我也尝试过使用 dataType: "json" 和 "jsonp"
【问题讨论】:
您在 PHP 中使用过时的 MySQL 系列 - 请查看 PDO 或 MySQLi。此外,以纯文本形式存储密码也不是一个好主意。当您说“它不起作用”时,请提供更多详细信息 - 什么都没有回来?还是总是“不”回来? 请不要在数据库中以纯文本形式存储密码...顺便说一句,您的代码容易受到 sql 注入的影响... 感谢您的建议,我会这样做的。它总是涉及到 ERROR 回调 【参考方案1】:你需要改变
data: 'user=' + user + '&pass=' + pass,
到
data: user : user, pass : pass,
【讨论】:
@Agustín:您能否提供更多信息作为回复?如果您不这样做,那么 Orion(或其他任何人)可能不确定如何进一步帮助您。您是否检查过浏览器网络面板中的 AJAX 操作?以上是关于Ajax调用PHP服务跨域[重复]的主要内容,如果未能解决你的问题,请参考以下文章