我遇到了使用Jquery和PHP的跨域请求的问题。
我在前端方面的代码:
$(document).ready(function(e) {
var params = {};
params['phone'] = "123";
$.ajax({
type: "GET",
crossDomain: true,
dataType : "jsonp",
jsonp: 'jsonp_callback',
url: "http://tennisterin.com/api/booking/user",
data: params,
error: function( xhr, textStatus ) {
alert( [ xhr.status, textStatus ] );
},
success: function(data){
console.log(data);
}
});
});
这就是我在服务器(php)方面所拥有的:
if (isset($_GET['phone'])) { $phone = inCode($_GET['phone']); } else { $phone = ""; }
echo $phone; //always empty
一切都很好,有本地要求但是"电话"从跨域位置请求时始终为空。
为什么会有问题?怎么解决?有什么想法吗?
谢谢!
P.S。 我找到了代码的狭窄地方: 当我使用
时,一切正常url: "http://tennisterin.com/api.php?page=booking&subpage=user",
而不是
url: "http://tennisterin.com/api/booking/user",
但是对于这种情况,我在.htaccess中有工作规则:
RewriteRule ^api/booking/user?$ api.php?page=booking&subpage=user [L]
所以它应该双方都有效! 我只看到跨域请求的问题。跨域和.htaccess如何连接?