感谢您的经验,您是否可以说使用DOM对象XHR或jjery的ajax方法更好?
或者它可能取决于性能,可靠性或可用性等要点?我想有一些看法
我正在使用jquery来调用ASP MVC控制器.返回部分视图.即一堆html
在出现错误的情况下,我想为用户填充一些信息,但ASP MVC正在发送整页,所以我需要从中获取文本.
我试过了:
$('#edit').ajaxError(function (e, xhr, settings, exception) {
var item = xhr.responseText.text();
var response = item.match(/.*<body.*>(.*)<\/body>.*/);
if (!response) {
$(this).html('Error: ' + xhr.status + ' Message:' + xhr.statusText);
}
else {
$(this).html(response);
};
});
Run Code Online (Sandbox Code Playgroud)
但我得到Uncaught TypeError:[后跟xhr.responseText的内容]没有方法文本
如果我直接在responseText上调用match,那么我得到null.
我猜我有一些基本的误会,所以如果有人可以帮忙......
我使用以下代码来显示函数的返回值test2.
输出显示为:x的值为:undefined
任何人都可以帮我解释如何从函数返回值test2?请注意,功能test2是XMLHTTPRequest
<script language="javascript">
function test1()
{
var x = test2();
alert('Value of x is: '+x);
}
function test2()
{
if(window.XMLHttpRequest)
{
abcd= new XMLHttpRequest();
}
else
{
abcd=new ActiveXObject("Microsoft.XMLHTTP");
}
abcd.onreadystatechange=function()
{
if (abcd.readyState==4 && abcd.status==200)
{
return abcd.responseText; // it is getting value 2 here
}
else if(abcd.readyState < 4)
{
return -1;
}
}
abcd.open("GET",sam.php,true);
abcd.send();
}
</script>
Run Code Online (Sandbox Code Playgroud) 嗨我试图使用不同的参数多次访问一个资源
在这种情况下请求
var domains = [
'host1',
'host2'
];
var requests = new Array();
for ( i in domains )
{
requests[i]=new request(domains[i]);
}
function request(site)
{
var url = 'get_remote_status.php?host='+site;
var queues = {};
http_request = new XMLHttpRequest();
http_request.open("GET", url, true, 'username', 'password');
http_request.onreadystatechange = function () {
var done = 4, ok = 200;
if (http_request.readyState == done && http_request.status == ok) {
queues = JSON.parse(http_request.responseText);
var queuesDiv = document.getElementById('queues');
print_queues(queues, queuesDiv, site);
}
};
http_request.send(null);
}
Run Code Online (Sandbox Code Playgroud)
但是,代码lambda只处理其中一个请求.Chromium报告已收到这两个请求,并且可以在资源窗格中查看这些请求. …
(用于XML HTTP请求的JavaScript和用于执行SQL查询的PHP.)
我正在构建一个执行查询的Web应用程序.它使用XMLHTTP请求GET方法并将查询传递给执行它的PHP脚本.它工作正常,直到我( )在其中引入括号.
这是一个如何工作的例子:
function executeQry(){
qry = document.getElementByID('textarea').value;
qryHTTPRequest(encodeURI(qry));
//I've also tried encodeURIComponent(qry);
}
function xmlHTTPRequest(qry){
//fetches
urlFetch = "http://my.url.com/script.php?qry=" + qry;
}
Run Code Online (Sandbox Code Playgroud)
这是一个快速参考,我知道我的xmlhttp请求工作正常,因为它执行其他查询传递时需要做的事情,例如:
SELECT * FROM `tableName`
Run Code Online (Sandbox Code Playgroud)
工作正常,但当你尝试做类似的事情
CREATE TABLE `new_table`
AS (SELECT * FROM `old_table`)
Run Code Online (Sandbox Code Playgroud)
然后这就是它不会执行的时候,我得到了403错误,所以我认为这是一个()因为我甚至在PHP本身上尝试了相同的代码,而不必通过它并且它工作,所以必须有一个URL编码过程的问题对吗?如果这是问题,是否有一种编码这些字符的方法?我假设还有其他字符不能用encodeURI()方法编码encodeURIComponent().提前致谢!
我有一个PHP脚本(fetchData.php),它获取一些数据并将其输出到页面.
<?php
require 'config.php';
require 'jsonapiSDK.php';
$api = new JSONAPI($ip_address, $jsonapi_port, $username, $password, $salt);
$response = $api->call('BWMFunction');
echo(addslashes($response["success"].";"));
?>
Run Code Online (Sandbox Code Playgroud)
你可以在这里看到输出:http://justicecraft.net/worldmap/fetchData.php 我有另一个页面使用XMLHttpRquest来获取fetchData.php的响应这里是它的JavaScript.它应该接受响应,并且eval()它(创建一个名为BWMFunction的数组)然后将该数组传递给我拥有的另一个函数.当我尝试eval()响应时发生非法令牌错误.
function fetchData() {
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) {
res = xmlhttp.responseText;
alert(res);
eval(res);
generate(BWMFunction);
}
}
xmlhttp.open("GET", "fetchData.php", true);
xmlhttp.send(); …Run Code Online (Sandbox Code Playgroud) 我使用以下命令将HTML5文件中的JPEG文件作为字符串发布到PHP:
function createJPG() {
var dataUrl = document.getElementById('canvas').childNodes[4].toDataURL("image/jpeg");
console.log(dataUrl);
var params = "theimage=" + dataUrl;
var http = new XMLHttpRequest();
http.open("POST", "/avatar/php/save-avatar.php", true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.send(params);
}
Run Code Online (Sandbox Code Playgroud)
一切都很好,dataUrl是正确的(在控制台中)并包含一个有效的JPEG文件.但是当我用PHP检索它时,所有的加号都被空格所取代?
PHP代码:
$name = "image.jpg";
$data=$_POST['theimage'];
file_put_contents($name, base64_decode(substr($data, strpos($data, ",")+1)));
file_put_contents("../images/avatars/uploads/generated" . rand(0,200) . ".txt", $data);
Run Code Online (Sandbox Code Playgroud)
我使用文本文件来查看数据的样子,因为我无法弄清楚如何回显到JS :).该文本文件包含与JS控制台日志完全相同的数据,但没有+'es和替换空格,这导致JPEG文件损坏.
我该怎么办?
我花了很多时间研究使用Cocoa的POST请求.
我发现一些看起来不错的代码.我改变它就像它符合我的需要.但代码不起作用,我找不到bug,因为我对可可很新.
这是我的代码.
- (IBAction)sendForm:(id)sender
{
NSLog(@"web request started");
NSString *post = [NSString stringWithFormat:@"firstName=%@&lastName=%@&eMail=%@&message=%@", firstName.stringValue, lastName.stringValue, eMail.stringValue, message.stringValue];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:@"myDomain/form.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if(theConnection)
{
webData = [[NSMutableData data] retain];
NSLog(@"connection initiated");
}
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[webData appendData:data];
NSLog(@"connection received data"); …Run Code Online (Sandbox Code Playgroud) 有什么区别:
Msxml2.DOMDocument
Msxml2.XMLHTTP
Run Code Online (Sandbox Code Playgroud)
?当然,另一个问题是哪一个最符合我的目的,如下所述?
上下文是这样的 - 我有许多代码可以检索网页.我正在为这项任务寻找最有效的对象.例如,像这样:
Dim oXmlHttp : Set oXmlHttp = CreateObject("MSXML2.XMLHTTP")
oXmlHttp.Open "GET", sUri, False
oXmlHttp.Send
If Err Then
getWebPage = "ERROR - could not get the source text of the webpage."
Exit Function
End If
sResponse = oXmlHttp.responseBody
Run Code Online (Sandbox Code Playgroud)
如果我使用以下方法创建对象,这似乎也是一样的
Dim oXmlHttp : Set oXmlHttp = CreateObject("MSXML2.XMLHTTP")
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释或指向一个明确概述每个人的差异(和预期用途)的参考文献吗?
我已经打破了很长一段时间了.我正在尝试向谷歌发送xmlhttprequest并将相应的数据记录到我的控制台中.我的代码:
sendRequest();
function sendRequest()
{
var req = new XMLHttpRequest();
req.open(
"GET",
"http://www.google.com",
true);
req.send(null);
console.log(req.responseText);
}
Run Code Online (Sandbox Code Playgroud)
我在manifest.json中添加了权限.但是,当我调试它什么都不打印.只是一个空行.我在这做错了什么
xmlhttprequest ×10
javascript ×6
ajax ×3
jquery ×2
php ×2
asynchronous ×1
canvas ×1
cocoa ×1
domdocument ×1
encode ×1
html ×1
html5-canvas ×1
http-post ×1
httpresponse ×1
regex ×1
token ×1