为什么即使文件存在于服务器上,jQuery ajax也会返回404 Not found错误?

3 javascript .htaccess jquery http-status-code-404

当我通过浏览器访问以下网址时,它可以很好地返回JSON数据,

http://azcvoices.com/topcompanies/wp-content/themes/topcompanies/get.php?p=33

当jquery执行ajax 时,即使文件确实存在于上面提到的服务器上,get它也会失败并404 Not found error带有以下代码get.php,

$.ajax( 
{
    url: "http://azcvoices.com/topcompanies/wp-content/themes/topcompanies/get.php",
    type: "GET",
    data: {p: postId}
})
.done(function(post) {
})
.fail(function() { alert("error"); })
.always(function() {  });
Run Code Online (Sandbox Code Playgroud)

您可能会在下面看到404错误, 在此输入图像描述

目前.htaccess中有以下内容,

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule  ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule  ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
Run Code Online (Sandbox Code Playgroud)

这会导致这个问题吗?

测试服务器上的相同演示, http://peplamb.com/workspace/azcentral.com/spotlight-stories/ 工作正常,但相同的代码在http://azcvoices.com/topcompanies/spotlight-stories失败/

可能是什么问题?任何帮助是极大的赞赏!

Mat*_*ant 6

您是否在托管页面的同一域中发出请求?如果没有,您可能会遇到跨源资源共享问题.

要解决此问题,您可以添加Access-Control-Allow-Origin: *为标题.

  • 谢谢提示马特!header('HTTP/1.1 200 OK',true,200); 让它工作! (8认同)
  • 让我们[在聊天中继续讨论](http://chat.stackoverflow.com/rooms/33173/discussion-between-matt-bryant-and-peplamb) (2认同)