猿问

zepto的$.ajax源码有一个hasPlaceholder变量,是检测url的什么部分?

代码如下:


let dataType = settings.dataType, 

    hasPlaceholder = /\?.+=\?/.test(settings.url)


if (hasPlaceholder) dataType = 'jsonp'

settings.url是传入的配置对象的url属性值

这个正则匹配两个问号,为什么要检测是否有这种结构的字符串,和jsonp又有什么关系?


慕姐8265434
浏览 450回答 1
1回答

精慕HU

这个是zepto ajax的url约定的一部分,官方里有解释:If the URL contains =? or dataType is “jsonp”, the request is performed by injecting a <script> tag instead of using XMLHttpRequest (see JSONP). This has the limitation of contentType, dataType, headers, and async not being supported.
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答