快速背景:我已经创建了一个基本的Facebook应用程序,这样用户就可以“喜欢”Facebook之外网站上的帖子。用户身份验证,使用他们的access_token重定向,由一些JS收集并通过隐藏字段插入表单,然后传递给POST请求。(不一定相关,但我也使用一些JS在用户从Facebook重定向到网站后自动提交“like”。)
在发送HTTP请求(并且成功)之后,用户被重定向到响应页面,只呈现屏幕上打印的"true“。有办法阻止这种重定向吗?我已经设置了一些JS,以便在表单提交后交换一些div内容,但我似乎无法阻止它们被指向别处。
提前谢谢你的任何想法。
HTML摘录
<!-- *Authentication Section* -->
<div id="submit_like">
<form>
<a id="facebook-authentication" href="https://graph.facebook.com/oauth/authorize?type=user_agent&client_id=[MY_APP_ID]&redirect_uri=[MY_POST-AUTHORIZATION_REDIRECT_URL]&scope=offline_access,publish_stream">
<div id="facebook-authentication-button">
START THE VOTE!
</div>
</a>
</form>
</div>
<!-- After Authentication, this form is submitted -->
<form id="likeform" method="POST" action="https://graph.facebook.com/[FACEBOOK_ID]/likes" >
<input id="AuthCode" name="access_token" type="hidden" value="123">
</form>发布于 2013-04-08 23:22:49
您可以使用jQuery .post()方法提交表单,而无需任何页面重定向。就你而言:
$.post("https://graph.facebook.com/[FACEBOOK_ID]/likes", $("#likeform").serialize()).done(function(data){
// redirect to new page or do nothing to stay put.
alert(data); //Show the returned value
});.serialize()助手函数接受表单输入,并以URL编码符号创建一个字符串。此字符串作为参数发送,该参数将包含access_token隐藏表单输入。
作为提醒,一定要包含jQuery。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>https://stackoverflow.com/questions/15889599
复制相似问题