对象不支持属性或方法'关于ajax POST到Web Api

Object doesn't support property or method 'val' on ajax POST to Web Api

本文关键字:ajax 关于 POST Api Web 属性 不支持 方法 对象      更新时间:2023-09-26

我已经构建了一个测试客户端页面,我正试图发布到我已经构建的Web API,但我得到以下错误:

0x800a01b6 - JavaScript runtime error: Object doesn't support property or method 'val'

在下面的代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript" src="Scripts/jquery-2.1.1.min.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $("#btnSubmit").click(function () {
            var user = {
                email: ('#txtEmail').val(),
                password: ('#txtPassword').val(),
                firstName: ('#txtFirstName').val(),
                lastName: ('#txtLastName').val(),
                country: ('#txtCountry').val(),
                postal: ('#txtPostal').val()
            };
            $.post("http://myUrl/api/****/***************", user, function (data, status) {
                alert("Data: " + data + "'nStatus: " + status);
            });
        });
    });
</script>

我可以用预期的结果点击Fiddler中的服务,所以我不认为这是我的服务。

另外,我在Stack上发现了一个关于改变的类似问题:

<script type="text/javascript" src="Scripts/jquery-2.1.1.min.js"></script>

<script type="text/javascript" src="Scripts/jquery-2.1.1.min.js" />

但是当我尝试这个时,我在visualstudio中得到一个智能感知错误,想要将其更改回原始代码行。

我还在熟悉jquery,所以技能还不是那么强。我知道我错过了什么,但不确定是什么。

如果有人能就这个问题提供一些说明,我将不胜感激。

您缺少$:

email: $('#txtEmail').val()

应该是这样的:

 var user = {
                email: $('#txtEmail').val(),
                password: $('#txtPassword').val(),
                firstName: $('#txtFirstName').val(),
                lastName: $('#txtLastName').val(),
                country: $('#txtCountry').val(),
                postal: $('#txtPostal').val()
            };