所以,我正在尝试向我的php脚本发送帖子请求。 在网络上,我在一个页面中:https://yyy.yyy/test-page 我的ajax网址设置如下:
url: "https://yyy.yyy/test.php"
但随后它返回404错误,其中包含以下网址:
https://yyy.yyy/test-page/test.php
它肯定不会在该路径中的php文件中找到,因为它位于root。将php移动到另一个文件夹不是一个选项。 该网站位于WordPress服务器中。
这是js代码:
$.ajax({
url: "https://yyy.yyy/test.php",
method: "POST",
type: "Json",
data: data,
success: function (res) {...}
});
答案 0 :(得分:1)
如果你想要使用Ajax并运行WordPress,你应该考虑编写一个插件并利用可用的钩子和函数来使这更容易,因为WordPress会做很多繁重的工作。
我看到你提到它无法移动,但如果它至少可以尝试将PHP代码复制到插件中(或者主题虽然不太理想)并且可能无法正常工作)然后它会让事情变得更容易。
JavaScript(jQuery)位:
$.ajax({
data: {
action: 'my_ajax_request'
},
type: 'post',
url: SOWP_AJAX.admin_ajax,
success: function(response) {
console.warn( response );
}
});
PHP位(第1部分):
这可确保您将Ajax函数发布到的URL映射到实际的URL。在这种情况下,admin-ajax.php
处的WordPress Ajax处理程序。
wp_localize_script(
'sowp_js', // this is the script name that should be used to enqueue the JavaScript code above
'SOWP_AJAX',
array(
'admin_ajax' => admin_url('admin-ajax.php')
)
);
PHP位(第2部分):
将其放入已激活的插件或主题文件中。钩子my_ajax_request
必须与Ajax请求中的请求操作和函数名称匹配,以便正确调用它。
add_action( 'wp_ajax_my_ajax_request', 'my_ajax_request' ); // the hook that is triggered when the request is made
function my_ajax_request() {
echo 'my ajax request works'; // print something out
wp_die(); // stop script execution
}
一旦您完成了上述所有操作,当Ajax请求正常运行并运行时,您应该会在浏览器控制台中看到my ajax request works
。如果它返回0
,则表示请求在某处失败。如果它确实失败了,通常意味着已经注册并调用了动作挂钩,因此某些内容可能拼写错误或丢失。