gpt4 book ai didi

ajaxComplete/ajaxStop/ajaxSuccess 未触发

转载 作者:行者123 更新时间:2023-11-30 05:22:48 24 4
gpt4 key购买 nike

我感谢所有的帮助。我是一个初学者,几乎没有 jQuery/AJAX 经验,我一直在疯狂地试图弄清楚为什么我无法弄清楚这一点。

我正在编写一个 Facebook 页面应用程序,让用户授予权限并将视频上传到页面。所有这些都很好用。这与其说是一个 Facebook API 相关的问题,不如说是一个 ajax 问题(至少我认为是这样)。

基本上,我试图在用户上传视频后以某种方式获得对页面的控制。我正在使用 [malsup jQuery 表单插件][1] 将生成的页面(这是 Facebook 上显示返回的 JSON 值的页面)加载到 Conceal 的 iframe 中。

我能够让 ajaxStart 启动,并且我已经通过更改背景颜色或在我单击“上传”时打印警告消息来对此进行了测试。但是,当上传完成(并且确实成功完成)时,没有其他事情发生。返回的 JSON 值加载到 Conceal 的 iframe 中,页面就在那里。我已经尝试让 ajaxComplete、ajaxStop 和 ajaxSuccess 启动,但无论出于何种原因,它们都没有启动。

总的来说,这是我想要完成的:- 我想重定向用户或在文件上传完成后显示一些 Conceal 内容。我什至不在乎是否有错误。我只需要一些事情发生。- 我正在使用 jQuery 表单插件,因为不幸的是我不够先进,无法弄清楚如何使用该值并用它做一些事情,但如果有人能引导我朝着正确的方向前进,我将不胜感激。

最后,这是我的代码:

<html>
<head>

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.js"></script>
<script type="text/javascript" src="http://malsup.github.com/jquery.form.js"></script>

<script type="text/javascript">
// prepare the form when the DOM is ready
$(document).ready(function() {
var options = {
target: '#output2', // target element(s) to be updated with server response
iframeTarget: '#output2',
beforeSubmit: showRequest, // pre-submit callback
success: showResponse // post-submit callback
};

// bind form using 'ajaxForm'
$('#theform').ajaxForm(options);
});

// pre-submit callback
function showRequest(formData, jqForm, options) {
return true;
}

// post-submit callback
function showResponse(responseText, statusText, xhr, $form) {
alert(responseText);
}
</script>

<script type="text/javascript">
jQuery().ready(function(){
$('body').ajaxStart(function() {
$(this).css("background-color","red");
});
$('body').ajaxSend(function() {
$(this).css("background-color","blue");
});
$('body').ajaxComplete(function() {
$(this).css("background-color","green");
});
$('body').ajaxStop(function() {
$(this).css("background-color","purple");
});
});
</script>


</head>
<body>


<?php

$app_id = "xxxxxxx";
$app_secret = "xxxxx";
$my_url = "xxxxxx";
$video_title = "xxxxxxxxx";
$video_desc = "xxxxxxxxx";
$page_id = "xxxxxxxx";

$code = $_REQUEST["code"];

if(empty($code)) {
// Get permission from the user to publish to their page.
$dialog_url = "http://www.facebook.com/dialog/oauth?client_id="
. $app_id . "&redirect_uri=" . urlencode($my_url)
. "&display=popup&scope=email,publish_stream,manage_pages";

$current_url = (!empty($_SERVER['HTTPS'])) ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];

if ($current_url != $dialog_url)
{
echo('<script>window.location ="' . $dialog_url . '";</script>');
}


} else {

// Get access token for the user, so we can GET /me/accounts
$token_url = "https://graph.facebook.com/oauth/access_token?client_id="
. $app_id . "&redirect_uri=" . urlencode($my_url)
. "&client_secret=" . $app_secret
. "&code=" . $code;
$access_token = file_get_contents($token_url);

$accounts_url = "https://graph.facebook.com/me/accounts?" . $access_token;
$response = file_get_contents($accounts_url);

// Parse the return value and get the array of accounts we have
// access to. This is returned in the data[] array.
$resp_obj = json_decode($response,true);
$accounts = $resp_obj['data'];

// Find the access token for the page to which we want to post the video.
foreach($accounts as $account) {
if($account['id'] == $page_id) {
$access_token = $account['access_token'];
break;
}
}

// Using the page access token from above, create the POST action
// that our form will use to upload the video.

$post_url = "https://graph-video.facebook.com/" . $page_id . "/videos?"
. "title=" . $video_title. "&description=" . $video_desc
. "&access_token=". $access_token;

// Create a simple form

echo '<form action=" '.$post_url.' " method="POST" enctype="multipart/form-data" id="theform">';
echo 'Please choose a file:';
echo '<input name="file" type="file">';
echo '<input type="submit" value="Upload" id="button-upload" />';
echo '</form>';

}
?>

<iframe id="output2" name="output2"></iframe>


</body></html>

谢谢你的帮助!!

最佳答案

看来您遇到了 Ajax 错误。我在您的代码中没有看到任何错误处理程序。您能否尝试按如下方式添加错误处理程序

<script>
$(document).ready(function(){
$(document).ajaxError(function(e, jqxhr, settings, exception) {
alert(exception);
})
})
</script>

关于ajaxComplete/ajaxStop/ajaxSuccess 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7948969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com