Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么可以';我不能输出AJAX POST发送的变量吗?_C#_Javascript_Asp.net_Razor_Typescript - Fatal编程技术网

C# 为什么可以';我不能输出AJAX POST发送的变量吗?

C# 为什么可以';我不能输出AJAX POST发送的变量吗?,c#,javascript,asp.net,razor,typescript,C#,Javascript,Asp.net,Razor,Typescript,我试图发布文本框的值,并在页面的“YouSaid…”部分发布相同的值 我的TypeScript/JavaScript是: declare var document; declare var xmlhttp; window.onload = () => { start(); }; function sayHello(msg: any) { // Post to server. xmlhttp.onreadystatechange = function () {

我试图发布文本框的值,并在页面的“YouSaid…”部分发布相同的值

我的TypeScript/JavaScript是:

declare var document;
declare var xmlhttp;

window.onload = () => {
    start();
};

function sayHello(msg: any) {
    // Post to server.
    xmlhttp.onreadystatechange = function () {
      if (xmlhttp.readyState == 4) {
        if (xmlhttp.status == 200) {
          // All right - data is stored in xhr.responseText
            alert("done" + " " + xmlhttp.responseText);
        }
        else {
          // Server responded with a status code.
            alert("error");
        }
      }
    }
    xmlhttp.open("POST", "Default.cshtml");
    xmlhttp.send("someValue=" + msg);


    return msg;
}

function start() {
    // Add event Listeners for user interaction
    var element = document.getElementById("link");

    element.addEventListener("click", function () {
        var tb = (<HTMLInputElement>document.getElementById("tbox"));

        var element = document.getElementById("response")
            .innerText = sayHello(tb.value);
    }, false);

    // Setup XMLHttpRequests (AJAX)
    if (XMLHttpRequest) {
        // Somewhat cross-browser
        xmlhttp = new XMLHttpRequest();
    }
    else {
        // Legacy IE
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
}
声明var文档;
声明var-xmlhttp;
window.onload=()=>{
start();
};
函数sayHello(msg:any){
//发布到服务器。
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){
//好的-数据存储在xhr.responseText中
警报(“完成”+“”+xmlhttp.responseText);
}
否则{
//服务器以状态代码响应。
警报(“错误”);
}
}
}
open(“POST”,“Default.cshtml”);
xmlhttp.send(“someValue=“+msg”);
返回味精;
}
函数start(){
//为用户交互添加事件侦听器
var元素=document.getElementById(“链接”);
元素。addEventListener(“单击”,函数(){
var tb=(document.getElementById(“tbox”);
var元素=document.getElementById(“响应”)
.innerText=sayHello(tb.value);
},假);
//设置XMLHttpRequests(AJAX)
if(XMLHttpRequest){
//有点跨浏览器
xmlhttp=新的XMLHttpRequest();
}
否则{
//遗产IE
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
}
HTML为(此页面为Default.cshtml):

@{
Layout=“~/\u siteloayout.cshtml”;
Page.Title=“主页”;
var msg=Request[“someValue”];
}
类型脚本HTML应用程序
:


等待响应


你说:
@味精

我已经正确地包括了所有参考资料:

我得到的回复码是200

我做错什么了吗?我已经学习了很多教程、文档等等,但我不知道我做错了什么。它看起来几乎一模一样。

你能试着更换一下吗:

xmlhttp.send("someValue" + msg);

你能试着更换一下吗

xmlhttp.send("someValue" + msg);


当您将XMLHttpRequest作为POST处理时,需要添加两个额外的标题-在调用
send
之前添加它们,如下所示:

var params = "someValue=" + encodeURIComponent(msg);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length.toString());
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(params);
更新-我的完整示例

Default.cshtml

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
    Page.Title = "Home Page";
    var msg = Request["someValue"];
}

@if (msg != null) {
    Layout = null;
    <text>You said @msg</text> 
} else {

    <h1>TypeScript HTML App</h1>
    <div id="content">
        <a href="javascript:;" id="link">Say Hello</a>:
        <br />
        <input type="text" value="dfgdfgdfg" id="tbox" />
        <br />
        <p id="response">awaiting a response.</p>
    </div>
}
@{
Layout=“~/Views/Shared/_Layout.cshtml”;
Page.Title=“主页”;
var msg=Request[“someValue”];
}
@如果(msg!=null){
布局=空;
你说的是@msg
}否则{
类型脚本HTML应用程序
:


等待响应

}
App.ts

declare var document;
declare var xmlhttp: XMLHttpRequest;

window.onload = () => {
    start();
};

function sayHello(msg: any) {
    // Post to server.
    xmlhttp.onreadystatechange = function () {
      if (xmlhttp.readyState == 4) {
        if (xmlhttp.status == 200) {
          // All right - data is stored in xhr.responseText
            //alert("done" + " " + xmlhttp.responseText);
            document.getElementById("response").innerText = xmlhttp.responseText;
        }
        else {
          // Server responded with a status code.
            alert("error");
        }
      }
    }

    var params = "someValue=" + encodeURIComponent(msg);
    xmlhttp.open("POST", "");
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.setRequestHeader("Content-length", params.length.toString());
    xmlhttp.setRequestHeader("Connection", "close");
    xmlhttp.send(params);

    return msg;
}

function start() {
    // Add event Listeners for user interaction
    var element = document.getElementById("link");

    element.addEventListener("click", function () {
        var tb = <HTMLInputElement>document.getElementById("tbox");
        sayHello(tb.value);
    }, false);

    // Setup XMLHttpRequests (AJAX)
    if (XMLHttpRequest) {
        // Somewhat cross-browser
        xmlhttp = new XMLHttpRequest();
    }
    else {
        // Legacy IE
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
}
声明var文档;
声明var xmlhttp:XMLHttpRequest;
window.onload=()=>{
start();
};
函数sayHello(msg:any){
//发布到服务器。
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){
//好的-数据存储在xhr.responseText中
//警报(“完成”+“”+xmlhttp.responseText);
document.getElementById(“response”).innerText=xmlhttp.responseText;
}
否则{
//服务器以状态代码响应。
警报(“错误”);
}
}
}
var params=“someValue=”+encodeURIComponent(msg);
xml http.open(“POST”和“);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
setRequestHeader(“内容长度”,params.length.toString());
setRequestHeader(“连接”,“关闭”);
xmlhttp.send(params);
返回味精;
}
函数start(){
//为用户交互添加事件侦听器
var元素=document.getElementById(“链接”);
元素。addEventListener(“单击”,函数(){
var tb=document.getElementById(“tbox”);
sayHello(tb.value);
},假);
//设置XMLHttpRequests(AJAX)
if(XMLHttpRequest){
//有点跨浏览器
xmlhttp=新的XMLHttpRequest();
}
否则{
//遗产IE
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
}

当您将XMLHttpRequest作为POST处理时,您需要添加两个额外的标题-在调用
send
之前添加它们,如下所示:

var params = "someValue=" + encodeURIComponent(msg);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length.toString());
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(params);
更新-我的完整示例

Default.cshtml

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
    Page.Title = "Home Page";
    var msg = Request["someValue"];
}

@if (msg != null) {
    Layout = null;
    <text>You said @msg</text> 
} else {

    <h1>TypeScript HTML App</h1>
    <div id="content">
        <a href="javascript:;" id="link">Say Hello</a>:
        <br />
        <input type="text" value="dfgdfgdfg" id="tbox" />
        <br />
        <p id="response">awaiting a response.</p>
    </div>
}
@{
Layout=“~/Views/Shared/_Layout.cshtml”;
Page.Title=“主页”;
var msg=Request[“someValue”];
}
@如果(msg!=null){
布局=空;
你说的是@msg
}否则{
类型脚本HTML应用程序
:


等待响应

}
App.ts

declare var document;
declare var xmlhttp: XMLHttpRequest;

window.onload = () => {
    start();
};

function sayHello(msg: any) {
    // Post to server.
    xmlhttp.onreadystatechange = function () {
      if (xmlhttp.readyState == 4) {
        if (xmlhttp.status == 200) {
          // All right - data is stored in xhr.responseText
            //alert("done" + " " + xmlhttp.responseText);
            document.getElementById("response").innerText = xmlhttp.responseText;
        }
        else {
          // Server responded with a status code.
            alert("error");
        }
      }
    }

    var params = "someValue=" + encodeURIComponent(msg);
    xmlhttp.open("POST", "");
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlhttp.setRequestHeader("Content-length", params.length.toString());
    xmlhttp.setRequestHeader("Connection", "close");
    xmlhttp.send(params);

    return msg;
}

function start() {
    // Add event Listeners for user interaction
    var element = document.getElementById("link");

    element.addEventListener("click", function () {
        var tb = <HTMLInputElement>document.getElementById("tbox");
        sayHello(tb.value);
    }, false);

    // Setup XMLHttpRequests (AJAX)
    if (XMLHttpRequest) {
        // Somewhat cross-browser
        xmlhttp = new XMLHttpRequest();
    }
    else {
        // Legacy IE
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
}
声明var文档;
声明var xmlhttp:XMLHttpRequest;
window.onload=()=>{
start();
};
函数sayHello(msg:any){
//发布到服务器。
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){
//好的-数据存储在xhr.responseText中
//警报(“完成”+“”+xmlhttp.responseText);
document.getElementById(“response”).innerText=xmlhttp.responseText;
}
否则{
//服务器以状态代码响应。
警报(“错误”);
}
}
}
var params=“someValue=”+encodeURIComponent(msg);
xml http.open(“POST”和“);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
setRequestHeader(“内容长度”,params.length.toString());
setRequestHeader(“连接”,“关闭”);
xmlhttp.send(params);
返回味精;
}
函数start(){
//为用户交互添加事件侦听器
var元素=document.getElementById(“链接”);
元素。addEventListener(“单击”,函数(){
var tb=document.getElementById(“tbox”);
sayHello(tb.value);
},假);
//设置XMLHttpRequests(AJAX)
if(XMLHttpRequest){
//有点CRO
declare var document;
declare var xmlhttp;

window.onload = () => {
    start();
};

function sayHello(msg: any, callback) {
    // Post to server.
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4) {
            if (xmlhttp.status == 200) {
                // alert(xmlhttp.responseText);
            } else {
                // Server responded with a status code.
                alert("error");
            }
        }
    };
    xmlhttp.open("POST", "PageB.cshtml");
    xmlhttp.send("someValue=" + msg);
}

function start() {
    // Add event Listeners for user interaction
    var element = document.getElementById("link");

    element.addEventListener("click", function () {
        var tb = (<HTMLInputElement>document.getElementById("tbox"));

        sayHello(tb.value);
        document.getElementById("response")
            .innerHTML = tb.value;
    }, false);

    // Setup XMLHttpRequests (AJAX)
    if (XMLHttpRequest) {
        // Somewhat cross-browser
        xmlhttp = new XMLHttpRequest();
    }
    else {
        // Legacy IE
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
}