0

因此,我在 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 cannot load Cannot make any requests from null.”。

关于如何做到这一点的任何想法,或者我在 php 中的重定向代码是否错误?

4

2 回答 2

1

使用标头进行重定向

header('Location:http://yoururl.com');exit();
于 2012-09-23T07:57:58.143 回答
0

与其在通过 AJAX 调用的 PHP 脚本内部进行重定向,不如尝试回显 URL - 然后在 Javascript 中,获取 AJAX 调用的结果(URL)并执行 Javascript 重定向。

编辑:

将 PHP 代码更新为:

echo $url;
exit();

更新 JavaScript 代码以检索 URL 并重定向:

$.ajax({
   type: "POST",
   url: "MYPATHGOESHERE/record.php",
   data: {
     url: track.permalink_url,
     name: track.name
   },
   success: function(data) {
       location.href = data;
   }
});
于 2012-09-22T08:25:35.440 回答