gpt4 book ai didi

php - 404 错误但来自 Codeigniter Framework 中的 JQuery Ajax 的正确响应

转载 作者:可可西里 更新时间:2023-11-01 00:07:04 24 4
gpt4 key购买 nike

这类似于 SO 上的另一个问题:

jQuery Ajax returning 404 Error, but correct Response

但以上是非常特定于 wordpress 的。此外,我的直觉是我的问题更多地与我的 Apacher 服务器设置有关,但我在这方面有点新手。

这是交易...我有这个 Jquery AJAX 代码:

events: function(start, end, callback) {
$.ajax({
type: "POST",
// This Works -->
url: 'http://calendar.localhost/index.php/myfeed/',
// This Fails -->
//url: 'http://calendar.localhost/myfeed/',
dataType: 'json',
cache: false,
data: {
appointment_id: _appointmentId
},
success: function(d) {.... },
error: function(x,s,e) {... }
});

当我将 url 与 index.php 一起使用时,一切正常。但是,当我使用不带 index.php 的那个时,我会收到 404 错误,即使 (json) 数据似乎恢复正常(见下文)。

此外,这发生在我最近升级到的新系统上: Debian 2.6.32 (amd64) PHP 5.3.3 Apache 2.2.16

相同的代码(即/myfeed 或没有 index.php)适用于我的旧系统: Fedora 8(是的,8 哈哈) PHP 5.2.x Apache 2.2.6

(请注意,最初我使用“/myfeed”作为 url 参数,它在我的“旧”系统上可以找到。我可以接受任何不需要对域进行硬编码的解决方案。)

所以要么我在这 3 个中的一个中遇到了一些差异(即 php、apache 或 linux 版本的变化),要么我需要在我的新 Apache 设置中修改一些东西(我的猜测是虚拟主机的根目录“/”,我在我的本地主机上为这个站点使用它……也许它认为响应来自不同的域,但我不知道如果它与 index.html 一起工作会怎样。 php 但没有它会失败???)。

如果有人有解决方案或想法让我尝试,将非常感激!!!

以下是来自 Firebug 的非工作案例的详细信息:

发布http://calendar.localhost/myfeed 404 未找到

Headers tab:
Response Headersview source
Date Tue, 22 Mar 2011 06:22:37 GMT
Server Apache/2.2.16 (Debian)
X-Powered-By PHP/5.3.3-7+squeeze1
Vary Accept-Encoding
Content-Encoding gzip
Content-Length 220
Keep-Alive timeout=15, max=90
Connection Keep-Alive
Content-Type text/html
Request Headersview source
Host calendar.localhost
User-Agent Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20110302 Iceweasel/3.5.16 (like Firefox/3.5.16)
Accept application/json, text/javascript, */*; q=0.01
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
Connection keep-alive
Content-Type application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With XMLHttpRequest
Referer http://calendar.localhost/index.php/client
Content-Length 36

Response tab:
{"eventArray":[{"id":"2","notes":"test client Thurs","start":1299951000000,"end":1299960900000},{"id":"3","notes":"test bb334343","start":1300064400000,"end":1300068000000},{"id":"5","notes":"New appt dafdaf","start":1300462200000,"end":1300465800000}, {"id":"35","notes":"japan2","start":1300539600000,"end":1300545000000},{"id":"47","notes":"helo customer test","start":1300471200000,"end":1300475700000},{"id":"50","notes":"test 2 x email","start":1300455000000,"end":1300455900000}]}

还有:

~启用mod_rewrite?是的,我相信(我的 CI 页面应该重定向)。

~ CI www 目录中的 .htaccess?是的:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin

ErrorDocument 404 /index.php
</IfModule>

谢谢,

彼得

PHP 端代码(按要求):

public function viewEvent()
{
...
$appointmentData['startDate'] = $startDate;
$appointmentData['startTime'] = $startTime;

$data = array( 'eventData'=>$appointmentData );

echo json_encode($data);
}

另外,Apache 日志给出:

[Tue Mar 22 10:45:03 2011] [error] [client 127.0.0.1] File does not exist: /var/www/calendar/myfeed, referer: http://calendar.localhost/

最佳答案

已解决:很尴尬,ModRewrite 没有启用。我只是通过将垃圾文本放入相当于“if/else”语句的条件来解决这个问题,条件是是否启用了 modrewrite,而且确实没有。我会早点发现这个,除非该网站表现出其他行为让我认为 modrewrite 实际上已启用。呃。

我希望我的白痴能帮助别人在将来节省一些时间!! :)

关于php - 404 错误但来自 Codeigniter Framework 中的 JQuery Ajax 的正确响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5387760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com