试图在PHP中刷新页面但收到错误

时间:2012-09-22 03:43:01

标签: php javascript ajax wordpress

所以,我在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中的重定向代码是否错误?

2 个答案:

答案 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;
   }
});
相关问题