我现在在几个 jQuery 脚本中使用了 jQuery.post,一切正常。但是在升级到 WordPress 3.0 之后,它就停止了工作。
我正在开发一个插件,其中包含以下 jQuery 代码:
//Delete event and remove from UI
jQuery("#eventList .cancelEvent").live('click', function() {
jQuery.post("/wp-content/plugins/wp-eventcal/myfile.php", { instance: 'cancelEvent' },
function(data)
{
alert('test'); // Never fires because 404 File Not Found
});
});
Firebug 报告“未找到 404 文件”错误。这是链接: http: //mysite.com/wp-content/plugins/wp-myplugin/myfile.php
如果我复制链接并将其粘贴到我的浏览器中,该页面就会正常打开。没有“404 文件未找到”错误。
查看我的 Apache 错误日志,我看到以下错误:
Cannot map GET
/wp-content/plugins/I:/Development/wamp/www/norwegianfashion/wp-content/themes/norwegianfashion/images/icon.png HTTP/1.1 to file,
referer: http://norwegianfashion.com/wp-admin/admin.php?page=wp-eventcal/eventcal-manager.php
这是我的 Apache 配置:
LoadModule rewrite_module modules/mod_rewrite.so
NameVirtualHost localhost
<VirtualHost localhost>
ServerName localhost
DocumentRoot "I:/Development/wamp/www/"
</VirtualHost>
<VirtualHost localhost>
ServerName mysite.com
DocumentRoot I:\Development\wamp\www\mysite
</VirtualHost>
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
这是我的 .htaccess 文件:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
更新
好的,我已将其范围缩小到这一点。
只有当我使用 /%category%/%postname% 打开自定义永久链接时才会遇到问题。
如果我使用默认永久链接,一切正常。
再说一遍,它可能是我的 .htaccess 文件吗?