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

Rex*_*x_C 2 javascript ajax jquery visual-studio-2012

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

0x800a01b6 - JavaScript runtime error: Object doesn't support property or method 'val'
Run Code Online (Sandbox Code Playgroud)

在以下代码中:

<!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>
Run Code Online (Sandbox Code Playgroud)

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

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

<script type="text/javascript" src="Scripts/jquery-2.1.1.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

<script type="text/javascript" src="Scripts/jquery-2.1.1.min.js" />
Run Code Online (Sandbox Code Playgroud)

但是当我尝试这个时,我在Visual Studio上得到了一个intellisense错误,希望将它改回原来的代码行.

我仍然熟悉jquery,所以技能组合并不那么强大.我知道我错过了什么,但不知道是什么.如果有人能够对这个问题有所了解,我会很感激.

Ehs*_*jad 5

你错过了$:

email: $('#txtEmail').val()
Run Code Online (Sandbox Code Playgroud)

应该是这样的:

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