jquery - 带有 Twitter API 的 jquery $.post 有效,但回调函数不返回数据
问题描述
我的页面上有一个表单,我在其中键入一条消息,该消息使用 Twitter API(通过 Simple PHP Wrapper for Twitter API v1.1)发布推文。推文已成功发布。但是,我想在 div 窗口中显示 php 输出,但到目前为止还没有成功。
我只是想看看是否可以使用回调中的“数据”从控制台中的 $.post 获得响应。根据我正在阅读的内容,这应该包含$.post
如果成功的响应。但是,我的控制台没有任何输出。
这是我的脚本,它正在调用它:
<script>
$(document).ready(function(){
$("#tweetButton").click(function(){
var data = $('#tweetMsg').serialize();
$.post('Tweet.php', data, function(data){
console.log(data);
}, 'html');
});
});
</script>
这是表格:
<form>
<label for="tweetMsg">Enter Your Message:</label>
<textarea id="tweetMsg" name="tweetMsg" rows="4" cols="50"></textarea>
<input type="submit" id="tweetButton" class="button" name="tweet" value="Send Tweet">
</form>
PHP 文件成功地将推文发布到我的帐户,并自行查看,确实返回了请求的内容。
<?php
require("TwitterAPIExchange.php");
require("config.php");
$message = $_POST["tweetMsg"];
$settings = array(
'oauth_access_token' => TWITTER_ACCESS_TOKEN,
'oauth_access_token_secret' => TWITTER_ACCESS_TOKEN_SECRET,
'consumer_key' => TWITTER_CONSUMER_KEY,
'consumer_secret' => TWITTER_CONSUMER_SECRET,
);
$url = 'https://api.twitter.com/1.1/statuses/update.json';
$requestMethod = 'POST';
$apiData = array(
'status' => $message
);
$twitter = new TwitterAPIExchange($settings);
$twitter -> buildOauth($url, $requestMethod);
$twitter -> setPostfields($apiData);
$response = $twitter -> performRequest(true, Array (CURLOPT_SSL_VERIFYHOST => 0, CURLOPT_SSL_VERIFYPEER => 0));
echo '<pre>';
print_r (json_decode($response, true));
?>
感谢你的协助!
解决方案
当您单击推文按钮时,尝试使用$.ajax
并使用preventDefault()来停止页面。reloading
使用此代码:
$(document).ready(function() {
$("#tweetButton").click(function(e) {
e.preventDefault()
var data = $('#tweetMsg').serialize();
$.ajax({
url: "Tweet.php",
type: "post",
dataType: 'html',
data: data,
success: function(response) {
console.log(response)
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
});
});
});
推荐阅读
- java - 如何将工作服集成到开源项目中?
- ionic3 - 如何在离子刷新器 Ionic 3 中使用自定义 SVG 作为 refreshSpinner
- android - 如何修复 UnsafeProtectedBroadcastReceiver?
- java - 在Java中,我无法在方法中的return语句之后添加代码
- unity3d - 如何在统一 3d 中完成动画后更改图像
- angular - 在打字稿中添加小时列表
- python-3.x - 是否需要卸载 python 3.7 才能运行 python 2.7?
- ruby-on-rails - 向 Rails FormObject 添加通用(未绑定到键或字段)错误消息
- javascript - 访问由 Object.create 创建的对象中的父(超级)方法
- sql - SQL - 所有列的不同记录