在Transcrypt中使用XMLHttpRequest()

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Transcrypt中使用XMLHttpRequest()相关的知识,希望对你有一定的参考价值。

我完全从客户端编写一个小型API站点,只有极少的javascript知识。

我如何在Transcrypt中使用XMLHttpRequest()?或者我应该使用URLlib或其他什么?

是否像创建新的XMLHttpRequest对象一样简单,然后像在JS中那样发送数据或检索页面?

XHR = XMLHttpRequest()
XHR.open("POST", "https://example.com/cors.php")
答案

它确实和JS一样简单,只有Python语法:

def read_file():
    xmlhttp= __new__ (XMLHttpRequest())
    xmlhttp.open('GET', 'https://github.com/QQuick/Transcrypt/blob/master/README.rst', False);
    xmlhttp.send()
    console.log(xmlhttp.responseText)

在你的例子中将是:

XHR = __new__ (XMLHttpRequest())
XHR.open("POST", "https://example.com/cors.php")

注意__new__ ()函数。在JavaScript中,它应该是new运算符,但Python语法不允许这样做。

如果你想完全避免使用qazxsw poi,你可以封装qazxsw poi我真正的Python类(现在它是一个JS函数),但是没有必要。

看到

__new__ ()

关于使用或避免使用qazxsw poi的一般解释。

您也可以通过JQuery进行以下更大的示例:

XMLHttpRequest

这是它在以下方面完成的方式:

http://www.transcrypt.org/docs/html/special_facilities.html#creating-javascript-objects-with-new-constructor-call

[编辑]

(回应OP的评论)

实际上,任何普通的JavaScript对象都可以这种方式实例化。请注意,在特殊情况下,您始终可以插入一段文字JS代码,如下所述:

__new__ ()

至于可用的lib,Transcrypt被设计为直接使用任何JS库,因为JS库倾向于专注于与客户端/浏览器相关的功能。

然而,可用的标准库的数量正在增长。目前可用的是:

  • CMATH
  • 约会时间
  • 检查
  • itertools
  • 记录
  • 数学
  • 随机(部分)
  • 重新(几乎完成)
  • 时间
  • 龟(几乎完整)
  • 警告

除此之外,Numpy还有一个小而有用的部分,如下所述:

__pragma__ ('alias', 'jq', '$') __pragma__ ('noalias', 'clear') # For use by eval'ed turtle applet import turtle import random import math def clear (): editor.setValue ('') turtle.reset () run () def run (): def success (result): global random turtle.reset () rnd = random eval (result) random = rnd def fail (a, b, c): print ('Run error:', a, b, c) # N.B. The request has to be explicitly encoded, but the response is already implicitly decoded jq.ajax ({ 'url':'http://www.transcrypt.org/compile', 'type': 'POST', 'data': JSON.stringify (editor.getValue ()), 'dataType': 'json', 'contentType': 'application/json', 'success': success, 'fail': fail }) def mail (): def success (result): print (result) def fail (a, b, c): print ('Run error:', a, b, c) jq.ajax ({ 'url':'http://www.transcrypt.org/mail', 'type': 'POST', 'data': JSON.stringify ([document.getElementById ('mail_address') .value, editor.getValue ()]), 'dataType': 'json', 'contentType': 'application/json', 'success': success, 'fail': fail }) def selectExample (): def success (result): editor.setValue (result [0]) turtle.reset () # Using old paths window.terminate = True console.log (result [1]) eval (result [1]) # Using new paths (so cannot clear old result) def fail (a, b, c): print ('Select example error:', a, b, c) selector = document.getElementById ('select_example') jq.ajax ({ 'url':'http://www.transcrypt.org/example', 'type': 'POST', 'data': JSON.stringify (selector.options [selector.selectedIndex] .value), 'dataType': 'json', 'contentType': 'application/json', 'success': success, 'fail': fail }) selectExample ()

它可在以下位置获得:

http://www.transcrypt.org/live/turtle_site/turtle_site.html

以上是关于在Transcrypt中使用XMLHttpRequest()的主要内容,如果未能解决你的问题,请参考以下文章

我可以使用 python 开发 Google Chrome 扩展吗? [复制]

在 python 和 javascript 中运行相同的代码

使用 Ajax 请求创建元素和 appendChild

Ajax模式开发者模式

Ajax模式开发者模式

在自述文件中包含许可证文件