相关疑难解决方法(0)

为什么我的JavaScript在所请求的资源上出现"No'Access-Control-Allow-Origin'标头"错误,当Postman没有?

我试图通过连接到Flask内置的RESTful API来使用JavaScript进行授权.但是,当我发出请求时,我收到以下错误:

XMLHttpRequest无法加载http:// myApiUrl/login.请求的资源上不存在"Access-Control-Allow-Origin"标头.因此不允许原点'null'访问.

我知道API或远程资源必须设置标题,但为什么在我通过Chrome扩展程序Postman发出请求时它可以正常工作?

这是请求代码:

$.ajax({
    type: "POST",
    dataType: 'text',
    url: api,
    username: 'user',
    password: 'pass',
    crossDomain : true,
    xhrFields: {
        withCredentials: true
    }
})
    .done(function( data ) {
        console.log("done");
    })
    .fail( function(xhr, textStatus, errorThrown) {
        alert(xhr.responseText);
        alert(textStatus);
    });
Run Code Online (Sandbox Code Playgroud)

javascript jquery same-origin-policy cors flask-restless

2320
推荐指数
29
解决办法
399万
查看次数

如何在javascript中附加<script> </ script>?

我需要使用childappend或jquery append()将一些标记内容附加到文档中.据我所知,这已被剥夺.谁知道怎么做?

javascript jquery append appendchild

90
推荐指数
5
解决办法
28万
查看次数

异步脚本加载回调

http://jsfiddle.net/JamesKyle/HQDu6/

我创建了一个基于Mathias Bynens优化的Google Analytics异步脚本的简短函数,如下所示:

function async(src) {
  var d = document, t = 'script',
      o = d.createElement(t),
      s = d.getElementsByTagName(t)[0];
  o.src = '//' + src;
  s.parentNode.insertBefore(o, s);
}
Run Code Online (Sandbox Code Playgroud)

这很好用,我已经开始将它用于几个不同的脚本

// Crazy Egg
async('dnn506yrbagrg.cloudfront.net/pages/scripts/XXXXX/XXXXX.js?' + Math.floor(new Date().getTime() / 3600000));

// User Voice
var uvOptions = {};
async('widget.uservoice.com/XXXXX.js');

// Google Analytics
var _gaq = [['_setAccount', 'UA-XXXXX-XX'], ['_setDomainName', 'coachup.com'], ['_trackPageview']];
async('google-analytics.com/ga.js');

// Stripe
async('js.stripe.com/v1');?
Run Code Online (Sandbox Code Playgroud)

当我遇到需要在加载后调用的脚本时出现问题:

// Snap Engage
async('snapabug.appspot.com/snapabug.js');
SnapABug.init('XXXXX-XXXXX-XXXXX-XXXXX-XXXXX');
Run Code Online (Sandbox Code Playgroud)

所以我想我会把它变成一个回调函数,可以这样使用:

async('snapabug.appspot.com/snapabug.js', function() {
    SnapABug.init('XXXXX-XXXXX-XXXXX-XXXXX-XXXXX');
});
Run Code Online (Sandbox Code Playgroud)

我没想到这对我来说很难做到,但结果却是这样.

我的问题是什么是添加回调的最有效方法,而不会使代码过于复杂.

请参阅jsfiddle:http: …

javascript asynchronous function callback

27
推荐指数
3
解决办法
3万
查看次数

异步.js文件加载语法

我注意到,异步加载js文件似乎有一些稍微不同的语法,我想知道两者之间是否存在任何差异,或者它们两者的功能是否相同.我猜它们的工作方式相同,但只是想确保一种方法由于某种原因并不比另一种更好.:)

方法一

(function() {
    var d=document,
    h=d.getElementsByTagName('head')[0],
    s=d.createElement('script');
    s.type='text/javascript';
    s.src='/js/myfile.js';
    h.appendChild(s);
})(); /* note ending parenthesis and curly brace */
Run Code Online (Sandbox Code Playgroud)


方法二(在Facebook的代码中看到这个)

(function() {
    var d=document,
    h=d.getElementsByTagName('head')[0],
    s=d.createElement('script');
    s.type='text/javascript';
    s.async=true;
    s.src='/js/myfile.js';
    h.appendChild(s);
}()); /* note ending parenthesis and curly brace */
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous

16
推荐指数
1
解决办法
8523
查看次数

具有async属性的script元素仍然阻止浏览器渲染?

我使用cuzillion工具构建一个页面:

<head>
  <script async></script>
</head>
<body>
   <img />
   <img />
   <img /> 
</body>  
Run Code Online (Sandbox Code Playgroud)

头部只有一个脚本元素,具有异步属性和2秒延迟,执行3秒.

但Chrome中的网页加载时间轴是:

在此输入图像描述

当脚本执行时,它仍然阻止浏览器渲染过程?

但为什么?它不应该异步执行?

但是它不会阻止解析器:

在此输入图像描述

javascript asynchronous google-chrome

9
推荐指数
1
解决办法
872
查看次数

如何在CDN文件中包含CDN(* .js)?

我知道如何在HTML文件中包含CDN。

<!DOCTYPE html>
<html>
<head>
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

但是我想做的是:
我想在我的JavaScript文件中包含CDN(如jquery)。

可能我要做的是不可能的。
实际上,我想从我的JavaScript文件中调用BootstrapDialog.Confirm
因此,我想在js文件中包含BootstrapDialog所需的CDN。
然后,我可以调用BootstrapDialog.Confirm

如果我的问题不合理,请原谅我,因为我是初学者。

javascript jquery bootstrap-dialog

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

Modernizr.load 已弃用。Yepnope.js 已弃用。怎么办?

在 Modernizr v3 之前,我使用的是 yepnope.js

Modernizr.load 和 yepnope.js 都已弃用。我们现在如何有条件地调用样式表或 javascript 文件?

适用于 Modernizr v2.5.3 的示例:

Modernizr.load({
  test: Modernizr['object-fit'],
  nope: ['./dist/scripts/object-fit.js'],
  complete: function(){
  if (!Modernizr['object-fit']) {
   jQuery(".poster img").imageScale({
   scale: "best-fill", 
   rescaleOnResize: true
   });
  }
 }
});
Run Code Online (Sandbox Code Playgroud)

conditional modernizr yepnope

5
推荐指数
1
解决办法
6086
查看次数

使用 AJAX 将 javascript 变量传递给 PHP

我有 1 个javascript变量,我想将 i 传递给我的php文件。我搜索了一下,发现可以使用,ajax但我真的不知道如何使用它!这是我的代码。我哪里做错了?我的 .js 文件:

var message1 = message.message;

        var jq = document.createElement('script');
        jq.src = "https://code.jquery.com/jquery-1.10.2.js";
        document.querySelector('head').appendChild(jq);

            $(document).ready(function() {
               $.ajax({
                        type: "POST",
                        url: 'http://localhost/a.php',
                        data: { newMessages : message1 },
                        success: function(data)
                        {
                            alert("success!");
                        }
                    });
         });
Run Code Online (Sandbox Code Playgroud)

我的a.php文件:

<?php
  if(isset($_POST['newMessages']))
  {
      $uid = $_POST['newMessages'];
      echo $uid;
  }
?>
Run Code Online (Sandbox Code Playgroud)

javascript php ajax

5
推荐指数
1
解决办法
63
查看次数

React Native WebView内的Twitter小部件

我正在尝试WebView在我的React Native应用程序中加载一个Twitter小部件,但是似乎由于某些原因我注入的Javascript无法正常工作。

我正在做的是异步加载Twitter脚本(函数从此处获取),然后twttr.widgets.load()在加载脚本时执行功能以绘制小部件。

有可能做到这一点,还是我尝试使用默认Webview组件来实现?

这是我的代码:

render() {
    let utils = ' \
      function loadScript(src, callback) { \
        var s, r, t; \
        r = false; \
        s = document.createElement("script"); \
        s.type = "text/javascript"; \
        s.src = src; \
        s.onload = s.onreadystatechange = function() { \
          if ( !r && (!this.readyState || this.readyState == "complete") ) { \
            r = true; \
            callback(); \
          } \
        }; \
        t = document.getElementsByTagName("script")[0]; \
        t.parentNode.insertBefore(s, …
Run Code Online (Sandbox Code Playgroud)

twitter webview react-native

3
推荐指数
1
解决办法
1866
查看次数