我有一个非常简单的脚本:
$(function() {
var url = theme_directory + '/func/api.php';
$.get( url, function(data) {
alert("Data Loaded: " + data);
});
});
api.php看起来像这样:
<?php
echo('hello');
define('WP_USE_THEMES', false);
require_once( dirname( __FILE__ ) . '/../../../../wp-blog-header.php' );
这很有效。但是当我把下面的出口像这样:
<?php
define('WP_USE_THEMES', false);
require_once( dirname( __FILE__ ) . '/../../../../wp-blog-header.php' );
echo('hello');
我浏览到api.php,它显示我'你好'然而当我使用javascript它没有告诉我警报。再次向上移动你好,它再次起作用。它让我很困惑。
<?php
echo ' ';
define('WP_USE_THEMES', false);
require_once( dirname( __FILE__ ) . '/../../../../wp-blog-header.php' );
print_r($wp);
现在javascript将显示$ wp的内容...但是,删除echo ' ';
并且不会触发javascript警报。
它与WordPress永久链接有关。当我将其关闭时,它可以工作,当我打开它时它不会。
答案 0 :(得分:1)
我相信WordPress的“花哨”永久链接使用Apache的mod_rewrite
。如果Apache返回HTTP 301以重定向浏览器,则jQuery将不会遵循该重定向。您可能需要查看this Stack Overflow question以解决此问题。
答案 1 :(得分:0)
问题可能出在require_once( dirname( __FILE__ ) . '/../../../../wp-blog-header.php'
); ,找不到那条路径
但是如果你只是想看到结果字符串使用load()。
$('#input').load('api.php');