所以,我在WordPress主题中有一个文件,里面有一段javascript,允许用户将音频上传到Soundcloud。请参阅以下代码:
SC.connect({
connected: function(){
$("#uploadStatus").html("Uploading...");
SC.recordUpload({
track: {
title: "My Recording at The Appreciation Engine",
sharing: "public"
}
}, function(track){
$("#uploadStatus").html("<a href='" + track.permalink_url + "' class='sclink'>" + track.permalink_url + "</a>");
$.ajax({
type: "POST",
url: "MYPATHGOESHERE/record.php",
data: {
url: track.permalink_url,
name: track.name
}
});
});
}
});
上传完成后,新曲目的URL将被发送到另一个PHP页面,该页面会创建一个新的WordPress帖子,其中包含soundcloud轨道的URL作为帖子内容。见下面的代码
header ('Access-Control-Allow-Origin: *');
$parse_uri = explode( 'wp-content', $_SERVER['SCRIPT_FILENAME'] );
require_once( $parse_uri[0] . 'wp-load.php' );
// Create post object
$my_post = array(
'post_title' => 'My Appreciation',
'post_content' =>
$_POST["url"],
'post_status' => 'publish'
);
// Insert the post into the database
wp_insert_post( $my_post );
$post_id = wp_insert_post($my_post);
$url = get_permalink( $post_id );
wp_redirect($url);
exit();
现在,我遇到的问题是我需要浏览器刷新到刚刚在WordPress中创建的新帖子,但我不断收到错误“XMLHttpRequest无法加载无法从null发出任何请求。”。
关于如何做到这一点的想法,或者我在php中的重定向代码是否错误?
答案 0 :(得分:1)
使用标题进行重定向
header('Location:http://yoururl.com');exit();
答案 1 :(得分:0)
不是重定向通过AJAX调用的PHP脚本内部,而是尝试回显URL - 然后在Javascript中,获取AJAX调用的结果(URL)并执行Javascript重定向。
编辑:
将PHP代码更新为:
echo $url;
exit();
更新JavaScript代码以检索网址并重定向:
$.ajax({
type: "POST",
url: "MYPATHGOESHERE/record.php",
data: {
url: track.permalink_url,
name: track.name
},
success: function(data) {
location.href = data;
}
});