如何使一个jQuery GET / AJAX请求私人/自定义URL协议?(How to make a

2019-06-23 16:06发布

在Mac和iOS平台, 这是可以做到双向交流通过自定义的URI方案/ A本机运行时NSURLProtocol 。 例如..索要NSImage从原生Objective-C的方法,您可以注册自定义处理程序(一个简单的字符串,这里我用“ mycustomprotocol ”)与WebKit的/你WebView NSView ,并从JS调用它像...

var theURL = 'mycustomprotocol:///' + (textField.value);
img.innerHTML = '<img src="'+theURL+'" id="string"/>';

我想能够使用jQuery做提出要求,因为在这一点上,它比90's风格的JS比较熟悉。但据我可以找到在网络上, $.get$.ajax只能做http(s)

请问像

javascript:document.location = 'mycustomprotocol://'

覆盖jQuery的URL处理? 我是一个dumbdumb,当涉及到的JavaScript,我敢肯定,这是很容易做到。我的确认为这是整个jQuery Mobile的框架是如何实现(通过私人的URI)。那么,为什么会出现没有在谷歌或SO过了吗? 我可以从我姐姐的朋友一些帮助?

Answer 1:

基本的Ajax和get方法使用浏览器的常规HTTP请求。 出于安全原因,AJAX呼叫类型决不会与自定义协议的工作。 如果你尝试开发一个网站,是不是在服务器和使用阿贾克斯,你会发现它会做什么。 你必须从地面启动并创建一个自定义请求处理程序干脆,不只是改变内jQuery的东西。



Answer 2:

这里是我做了一个callto:协议,在Firefox 24和IE 10的工作(我没有测试任何其他浏览器):

首先 - 你的协议必须已经注册或您的计算机将无法识别它。 其次建立在你的标记隐藏链接,以协议的HREF。 当我点击一个按钮( #calltobutton ),然后将其设置隐藏链接(价值#clicker ),然后再单击它,导致执行操作的浏览器。

然后这样做:

$('#calltobutton').click(function () {
    initCallTo(1234567890);
});


function initCallTo(callto) {
    $('#clicker').attr('href', "callto:" + callto);
    $('#clicker')[0].click();
}

现在,点击致电第一链接的方法是这样的,但奇怪的。 你可以阅读更多关于此这里线程 。



Answer 3:

这来得晚了一点,但你可以使用https://github.com/ded/reqwest做到这一点:

reqwest('mycustomprotocol://myaction', function(result) {
  // ...
});


Answer 4:

只有这样我能得到这个工作是做使用JS的DOM浏览器窗口重定向。 从JQuery的,甚至对我这个网页没有工作与移动Safari和侦听自定义的URI方案的应用提到reqwestJS库调用。



文章来源: How to make a jQuery GET/AJAX request to a private/custom URL protocol?