0

我尝试使用 AJAX 将表单数据发送到服务器,但它总是返回 404。这是我的代码:

$(function() {
    var dataString ='Name: '+conditionName+"&Desc: "+conditionDescription+'&Condition: '+condition;
    //alert (dataString);return false;
    $.ajax({
        type: "POST",
        url: "saveCondition.php",
        data: dataString,
        success: function(response) {
                 alert ('Data saved: '+dataString);
        },
        error: function (xhr, ajaxOptions, thrownError) {
                alert(xhr.status);
        }
    });
    return false;
});

“saveCondition.php”与我在本地机器上使用 WAMP 服务器的 .js 文件位于同一文件夹中。

更新:

当我将路径更改为相对于 HTML 页面的“saveCondition.php”时,出现错误500

4

4 回答 4

2

Make sure the location of saveCondition.php is correctly mentioned.

似乎您的 html 页面路径类似于“ http://example.com/folder1/page1 ”,而您的 saveCondition.php 位于http://example.com/saveCondition.php

在这种情况下,ajax 代码将 url 解释为http://example.com/folder1/saveCondition.php这是不正确的。

尝试:'/saveCondition.php'

于 2013-07-17T14:56:22.063 回答
2

正在从 HTML 页面调用 JavaScript 文件。因此,URL参数必须与 HTML 页面相关

尝试将您的 URL 参数编辑为以下内容:"MyJavaScriptFolderNameHere/saveCondition.php"

于 2013-07-17T14:49:54.700 回答
2

AJAX 请求的 URL 的路径是相对于您当前所在页面的根目录的,即如果您的页面与您的 AJAX 脚本 (data.php) 一起位于根目录(我们称之为 index.html)中,并且您的 jQuery 脚本位于 js 目录中,您将使用 'data.php' 作为 URL。如果您的 data.php 脚本位于 js 目录中,则您的 URL 需要是“js/data.php”。

小心使用相对路径。最好使用绝对路径,以防您的脚本是从不同的目录使用的,而不是最初开发的路径。

您提到了 500 响应代码。这表明您请求的 PHP 脚本实际上出错了。

为了找出错误的原因,请检查您的错误日志或将以下代码放入 PHP 脚本中。然后错误将在 HTTP 响应正文中输出。

ini_set('display_errors', 'on');
error_reporting(E_ALL);
于 2013-07-17T14:50:43.037 回答
1

如果你得到一个 404 是因为 js 没有正确指向 PHP 脚本。要像您那样调用保存条件,它应该与您添加 js 的脚本位于同一文件夹中,而不是 js 本身。我认为最好将 URL 更改为完全相对于站点 URL,例如,如果您的 PHP 脚本位于 public_html/ajax/saveconditions.php 中,请将 Ajax URL 设置为 /ajax/saveconditions.php。

于 2013-07-17T14:57:29.480 回答