只是做了一个可能有用的简单测试。
在我的本地开发多站点中,我在根目录下放置了两个文件:
test.html
在静态页面中加载WordPress菜单
<html>
<head>
<TITLE>Testing Ajax/WordPress</TITLE>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
jQuery(document).ready(function($) {
$("#nav-container").load("http://brasofilo.dev/test.php", function(response, status, xhr) {
if (status == "error") {
var msg = "Sorry but there was an error: ";
$("#nav-error").show();
$("#nav-error").html(msg + xhr.status + " " + xhr.statusText);
}
});
});
</script>
</head>
<body>
<div id="nav-container">Container DIV</div>
<div id="nav-error" style="display:none">ERROR</div>
</body>
</html>
test.php
返回WordPress菜单<?php
define( \'WP_USE_THEMES\', false );
require( \'./wp-load.php\' );
wp_nav_menu( array( \'menu\' => \'Test Menu\' ) );
文件test.html
已从子域加载http://test.brasofilo.dev
, 但是Ajax call 未能在主域中加载PHP文件http://brasofilo.dev
由于Same origin policy.要克服此问题,请执行以下操作Cross-Origin Resource Sharing 在中规则.htaccess
:
Header set Access-Control-Allow-Origin http://test.brasofilo.dev