Ajax调用PHP失败,ASP正常工作.NET
Ajax call failing for PHP and working fine for ASP.NET
我正在做一个简单的Ajax调用,它在ASP中工作。NET,但是在onreadystatechange函数中放置断点时出现了一些奇怪的DOM异常。什么是额外的标题魔术ASP。NET正在做PHP没有做的事情,导致PHP的responseText为空,例如,当您在Google Chrome中查看xmlhttp变量时,只有DOM异常。
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
//Here is where you unwrap the data
var arr = UnWrapVars(xmlhttp.responseText);
if (callBackFunc) {
callBackFunc(arr);
}
}
};
xmlhttp.open("POST", ajaxURL, true);
if (navigator.userAgent.toLowerCase().indexOf('msie') == -1) {
xmlhttp.overrideMimeType("application/octet-stream");
}
xmlhttp.send("[FunctionName]" + functionName + "[/FunctionName][CanvasID]" + canvasid + "[/CanvasID][WindowID]" + windowid.toString() + "[/WindowID][Vars]" + getEncodedVariables() + "[/Vars]");
来自Ajax页面的传入数据如下:[root][Vars][windows]
我是故意做[而不是<,所以请不要指出这一点,它在ASP.NET页面上工作,但在PHP页面上不工作。返回的数据与我在服务器端检查的数据相同。那么,如果任何ASP.NET做了PHP没有做的事,那么缺少的头魔法是什么呢?
这是因为$_POST
实际上是访问通过表单发布的数据的简写。它需要合适的标头。将此行置于xmlhttp.send()
:之前
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
这将强制PHP填充$_POST
数组。
或者,您可以创建一个Request
实例,作为php://input
流的自定义包装器。那么您的XHR调用将不需要发送额外的标头。
相关文章:
- 日历插件示例doen'我不在.net上工作
- 为什么在ASP.NET Ajax更新面板中执行任何操作后javascript元素都停止工作
- Ajax调用PHP失败,ASP正常工作.NET
- 使用HTML和任何服务器端语言(PHP,.net,ruby)制作的网站是否可以在每个具有浏览器的设备上工作
- 当页面回发ASP.NET时,时间选择器javascript将停止工作
- C#asp.net确认在Ajax调用中不工作
- 正在jsfiddle.net上工作,但不在我的笔记本电脑上
- Asp.net Ajax事件句柄如何与DOM事件协同工作
- 使用ASP.Net MVC Web Api将JSON数据导出到Excel工作表
- 如何使Asp.net网站同时在IE 11(非可比模式)和IE 8中工作
- Jquery将在asp.net 3层的更新面板“不工作”中重新加载
- Asp.Net 将多个窗体添加到一个窗体时,用户控件无法正常工作
- 我可以在 MVC 3.0 中获得一个工作 Asp.NET jsTree 4 示例,并异步加载节点
- Jquery 只为我在第 Asp.net 页上显示的引导程序警报工作一次
- 在应用程序无法正常工作 Asp.net 抛出警报消息
- 引导 3 个单选按钮到按钮 ASP.NET MVC 下无法完全正常工作
- 为什么我的正则表达式在 .NET 中工作,但在 Javascript 中不起作用
- jQuery在发布到localhost后无法在 asp.net MVC中工作
- 监听器没有在我的ASP上工作.. NET按钮从我的Jquery
- Jquery不能在使用ASP的母版页中工作.NET c#和工作良好,不使用母版页