jQuery/Ajax-试图通过Ajax创建POST方法并获得对HTML的响应
jQuery/Ajax - Trying to create a POST method by Ajax and get response to HTML
伙计们,我正在尝试用Ajax创建一个简单的HTMLpost方法。
这是我的代码:
<?PHP
function callInstagram($url)
{
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => 2
));
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$tag = Mage::getStoreConfig('vivastags/vivasgroup/instagra_tag');
$client_id = "1e0f576fbdb44e299924a93cace24507";
$Next_URL = $_GET["nexturl"];
if($Next_URL == ""){
$url = 'https://api.instagram.com/v1/tags/'.$tag.'/media/recent?client_id='.$client_id.'&count=24';
} else {
$url = $Next_URL;
}
$inst_stream = callInstagram($url);
$results = json_decode($inst_stream, true);
$maxid = $results['pagination']['next_max_id'];
$nexturl = $results['pagination']['next_url'];
//Now parse through the $results array to display your results...
?>
<div class="holder">
<?PHP
foreach($results['data'] as $item){
$image_link = $item['images']['thumbnail']['url'];
$Profile_name = $item['user']['username'];
$PostID = $item['id'];
echo '<div style="display:block;float:left;">'.$Profile_name.' <br> <img src="'.$image_link.'" /></div>';
}
$nextUrlEncoded = urlencode($nexturl);
?>
<div id="LoadedResults"></div>
</div>
<?PHP
$nextUrlEncoded = urlencode($nexturl);
?>
<button type="button" id="LoadMore">Load more Images!</button>
<script>
jQuery(document).ready(function($) {
jQuery('#LoadMore').click(function() {
var nextUrl = "<?PHP echo $nextUrlEncoded;?>";
$.ajax({
url: 'ajax.php',
type: 'POST',
dataType: 'html',
data: {
next_url: nextUrl
},
}).done(function ( data ) {
$('#LoadedResults').append(data);
});
alert("Post sended!");
});
});
</script>
请注意,我在head标签中包含了jQuery1.9.1。
这是我的ajax.php:
<?PHP
function callInstagram($url)
{
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => 2
));
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$tag = "bulgaria";
$client_id = "1e0f576fbdb44e299924a93cace24507";
$Next_URL = $_POST["next_url"];
$url = $Next_URL;
$inst_stream = callInstagram($url);
$results = json_decode($inst_stream, true);
$maxid = $results['pagination']['next_max_id'];
$nexturl = $results['pagination']['next_url'];
//Now parse through the $results array to display your results...
foreach($results['data'] as $item){
$image_link = $item['images']['thumbnail']['url'];
$Profile_name = $item['user']['username'];
echo '<div style="display:block;float:left;">'.$Profile_name.' <br> <img src="'.$image_link.'" /></div>';
}
问题是没有回应,当我点击按钮时,什么也没发生。
我的错误在哪里?我该怎么做?
注意,在您的ajax中,您有type: 'POST'
。因此,您的PHP应该查找"POST"属性:
$_GET["next_url"];
应该是
$_POST["next_url"];
此外,
你需要围绕这一点报价:
var nextUrl = "<?PHP echo $nextUrlEncoded;?>";
最后,如果这仍然不起作用,我会在Chrome中打开开发者工具,查看"网络"选项卡。确保你的XHR发送了正确的数据。我很好奇$nextUrlEncoded
是否从未被正确设置。然后确保来自XHR的响应包含信息。这将帮助您确定中断的来源。
相关文章:
- Ember.js:将Em.$.getJSON转换为promise并将响应绑定到控制器上下文的正确方法
- jQuery/Ajax-试图通过Ajax创建POST方法并获得对HTML的响应
- 画布如何在paperJs中使用pathData方法做出响应
- 从javaspring方法管理http.get响应
- 有没有任何方法可以从javascript进行跨域请求,并访问它可能生成的错误响应类型(401404等)
- jQuery$.ajax方法.成功:使用响应数据的函数
- 无法调用方法'发送'express js中未定义的(响应未定义)
- 试图理解返回javascript方法的服务器响应
- 创建响应图像的最简单方法是什么
- 制作预制响应功能的最佳方法是什么
- 无法解析javascript中的json字符串,这是java方法的响应
- 跨域 Post 方法 ajax 调用使用 jQuery 和 XML 响应
- 检查 JSON 响应是空还是空的最佳方法
- 是否存在任何使用 sass/指南针进行响应式菜单的方法
- Tumblr API 标记方法 - URL 没有相应的响应
- 除了屏幕之外,CSS 值是否有任何方法响应窗口宽度@media
- 如何对Ajax Post方法响应正确的服务器执行
- 重新加载方法:响应文本与窗口.位置.href(1 次旅行与 2 次)
- 服务器没有使用get方法响应xmlHTTP请求
- 如何在ajax中控制服务器的方法响应