从子域到主域的$ .post调用不起作用

时间:2012-01-02 17:38:08

标签: jquery .htaccess post

我的网页按 .HTACCESS 简单规则划分在子域上。子域名包含用户的个人资料,并且有一个评论表单,指向主域以进行 POST请求

function comment(){
if($('#comment').val() && $('#comment-author').val() && $('#comment-mail').val() && $('#comment-tc').is(':checked')){
$.post('http://www.example.com/user-profile/ajax.php', {'fnc':'make-comment', 'text': $('#comment').val(), 'mail': $('#comment-mail').val(), 'name': $('#comment-author').val()},
function(d){$('#comment-area').html('Your comment was sent! Thanks '+$('#comment-author').val()+'!');});
}
} 

如果我在主域上执行此操作,它会正常工作,但如果我从子域尝试此操作,例如ryanc.domain.com Firebug 会抛出< strong> 200 OK ,但同时出错

The Error

它没有响应也没有效果,我需要这个才能工作。我不知道为什么这不起作用,任何线索?

1 个答案:

答案 0 :(得分:4)

根据same origin policy限制,您需要使用完全相同的主机和子域。

例如,如果您尝试从http://ryanc.domain.comhttp://www.domain.com发送AJAX请求,则违反此政策,浏览器会限制请求。

有几种解决方法。这是一个值得检查的good article,它显示了不同的解决方法。