标签: xmlhttprequest

离开页面时Ajax请求是否仍然完成?

我有一种情况,我需要运行一些PHP,特别是我需要发送SOAP请求并等待响应,然后对此做一些事情,但有时这些请求可能很慢,最多需要9秒.

现在我真的不希望坐在那里的用户等待9秒才能完成.

基本上用户流程是......

  • 用户进入付款页面
  • 用户点击按钮通过支付网关(Paypal)付款
  • 用户然后返回到站点(SOAP请求以及在此阶段需要完成的所有操作)

我正在考虑使用Paypal IPN通知运行它,但后来认为它不会在用户返回网站时完成.

所以,我想知道当用户通过Ajax点击第一页并在用户提交付款时运行它时是否可以发出呼叫,当他们返回网站时应该完成 - 这不是如果他们最终没有通过付款,这是一个大问题,所以我不担心在确认付款之前运行此代码.

我的问题是,如果我通过AJAX运行它,如果用户在完成之前离开页面,代码是否仍会被执行?如果不是,任何想法?

javascript php ajax xmlhttprequest

2
推荐指数
1
解决办法
1209
查看次数

XMLHttpRequest浏览器支持

有没有理由以下代码片段在IE7中不起作用?

var http = new XMLHttpRequest();
var url = 'http://my_site.com/';
var obj = createJsonParamsObj();
http.open("POST", url, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.send(JSON.stringify(obj));
Run Code Online (Sandbox Code Playgroud)

从文档看起来似乎new XMLHttpRequest()应该工作,但有疑虑,因为我无法测试它(仅在兼容模式)所以也许我更好地使用new ActiveXObject.

javascript xmlhttprequest cross-browser

2
推荐指数
1
解决办法
2万
查看次数

Tomcat - 每个请求一个线程 - 或其他替代方案?

我的理解是,在Tomcat中,每个请求将占用一个Java /(以及OS)线程.

想象一下,我有一个应用程序有很多长期运行的请求(例如一个有多个玩家的扑克游戏),涉及游戏内聊天和AJAX长轮询等.

有没有办法改变我的webapp的tomcat配置/架构,这样我就不会为每个请求使用一个线程,而是"拦截"请求和响应,以便它们可以作为队列的一部分进行处理?

multithreading tomcat xmlhttprequest request long-polling

2
推荐指数
1
解决办法
5977
查看次数

Google云端存储 - 使用XMLHttpRequest直接上传会导致"Access-Control-Allow-Origin"错误

我的以下问题使用:Java,GWT,jQuery,App Engine(GAE).

关于"Access-Control-Allow-Origin" - 头部有很多问题,但似乎没有什么是我追求的.

我正在尝试使用POST对象将文件上传到Google云端存储.如果我只是使用html表单来实际上传,这可以正常工作.但是,一旦我尝试使用XMLHttpRequest发出完全相同的请求,我就会收到错误"No'Access-Control-Allow-Origin'标头出现在请求的资源上".我已经按照设置CORS进行了斗式导航.我的CORS xml文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<CorsConfig>
  <Cors>
    <Origins>
      <Origin>*</Origin>
    </Origins>
    <Methods>
      <Method>GET</Method>
      <Method>POST</Method>
      <Method>HEAD</Method>
      <Method>DELETE</Method>
      <Method>OPTIONS</Method>
    </Methods>
    <ResponseHeaders>
      <ResponseHeader>x-goog-meta-foo1</ResponseHeader>
    </ResponseHeaders>
    <MaxAgeSec>1800</MaxAgeSec>
  </Cors>
</CorsConfig>
Run Code Online (Sandbox Code Playgroud)

那我为什么要使用XMLHttpRequest呢?这是因为我希望能够将上传文件上传到Google云端存储(GCS).我不确定我是否在某处犯了一些错误,或者在上传到GCS时甚至可能有上传进度.但据我所知,对此应该没有限制,因为上传进程不是基于与GCS的通信(除了上传速度之外).

我已经强行清理了我的缓存,但这没有用!:(

有什么建议?

谢谢!

gwt google-app-engine xmlhttprequest cors google-cloud-storage

2
推荐指数
1
解决办法
887
查看次数

文件上载进度事件未触发,但文件上载

我在这里看到了一些类似问题的帖子,但我似乎无法解决这个问题.基本上,我有一个AJAX文件上传器似乎没有调用progress事件.其他事件启动很好,文件上传完全符合我的预期,但是没有调用progress事件.javascript如下所示:

$('input[name=avatar_upload]').change(function(e) {
    // Get the Form
    var setupForm = $('#setup-member-form');

    // Get the File Array
    var file = document.getElementById('avatar-upload').files[0];

    // Show the File Upload Progress
    $('#avatar-upload-progress').show();

    // Create a new Form Data Object
    var formData = new FormData();

    // Add the File
    formData.append('avatar', file);

    // Create the AJAX Object
    var ajax = new XMLHttpRequest();

    // Add the Event Listeners
    ajax.addEventListener("loadstart", function(evt) {
         // Do something in here...
         $('#output').append("upload starting...\n");
    }, false);
    ajax.addEventListener("progress", function(evt) {
         var percentLoaded = (evt.loaded / …
Run Code Online (Sandbox Code Playgroud)

ajax jquery xmlhttprequest javascript-events

2
推荐指数
1
解决办法
3165
查看次数

如何仅从XMLHttpRequest获取响应标头

是否可以仅从中获取响应头XMLHttpRequest而不下载文件数据?

javascript xmlhttprequest http-headers

2
推荐指数
1
解决办法
5040
查看次数

Access-Control-Allow-Origin和CORS背后的概念是什么?

我真的不懂Access-Control-Allow-Origin和CORS.
如果我允许来自任何域的请求到我的页面,这是否意味着我的页面存在任何安全问题?

我一直认为,SOP确保不能在页面上运行任何脚本,该脚本从另一台服务器请求数据,因为该数据可能是恶意的.但是,由于服务于恶意数据的服务器只能回复包含的标头Access-Control-Allow-Origin:*,所以可以从该服务器加载所有内容.
因此,只要有人设法将一段JS代码注入页面,就可以从属于攻击者的服务器加载每个恶意代码.

Unitl现在我假设,我必须启用跨域请求以允许我的页面上的代码从另一个域请求数据,但它似乎是相反的方式; 另一个域必须允许我的域请求数据.我真的没有看到这个概念的安全性好处.
任何人都可以解释这背后的概念,或者告诉我,如果我弄错了吗?

javascript xmlhttprequest same-origin-policy cors

2
推荐指数
1
解决办法
310
查看次数

vbscript msxml12.XMLHTTP错误处理

我使用以下vbscript代码下载网页:

Dim oXML
Set oXML = CreateObject("msxm12.XMLHTTP")
oXML.Open "GET", "mysite.com", False
oXML.Send
Run Code Online (Sandbox Code Playgroud)

如果没有这样的网站,我会报错 80004005, Unspecified error at line "oXML.Open ..."

我该如何处理vbscript中的此错误?我想捕获此错误,并显示msgbox和我的错误,即网页不可用。

vbscript xmlhttprequest

2
推荐指数
1
解决办法
1万
查看次数

Excel VBA Scrape网页

我正在尝试抓取以下网页

http://www.bseindia.com/markets/equity/EQReports/StockPrcHistori.aspx?flag=0&expandable=7

搜索框(它说进入股代名称/代码/ ID) ,在这里我有困难,我可以框的值设置为凭证编号500222通过使用下面的代码,

IE.Document.All.Item("ctl00$ContentPlaceHolder1$GetQuote1_smartSearch").innerText = "500222"

但是,如果您尝试在搜索框中手动输入值500222,则会出现一个下拉框,该框将是相应脚本的名称.但是,我无法通过VBA使其工作.任何帮助都会很棒.

vba dom xmlhttprequest excel-vba web-scraping

2
推荐指数
1
解决办法
3191
查看次数

为什么在200 HTTP响应代码上XmlHttpRequest readyState = 2

所以我使用普通的javascript(没有jquery),将文件发送到服务器.服务器脚本PHP在结尾处返回状态代码200,但是javascript正在变为readyState == 2.

PHP代码发送回状态代码200:

header('X-PHP-Response-Code: 200', true, 200);
exit;
Run Code Online (Sandbox Code Playgroud)

javascript正在做:

request.onreadystatechange = function() {
        if (request.readyState == 4) {
            var message;
            switch(request.status) {
                case '200':
                     message = "Data uploaded successfully.";
                break;

                case '406':
                    message = "Incorrect file format.  Please try again.";
                break;

                case '410':
                    message = "Unexpected error.  Please contact support.";
                break;

                default:
                break;
            }
            status_message_container.innerHTML = message;
            submit_button.disabled = false;
        }
        else {
            alert( "Unexpected error:  " + this.statusText + ".\nPlease try again");
        }
    };

    request.send(formData);
Run Code Online (Sandbox Code Playgroud)

甚至知道HTTP 200状态代码在前端正确返回(我得到'OK').JS脚本正在看readyState==2 …

javascript php ajax xmlhttprequest http-status-code-200

2
推荐指数
1
解决办法
1万
查看次数