小编Cod*_*per的帖子

jQuery的ajaxSetup - 我想仅为GET请求添加默认数据

在ajax驱动的站点中,我使用ajaxSetup添加了一些默认数据,ala:

var revision = '159';
$.ajaxSetup({
    dataType: "text json",
    contentType: "application/x-www-form-urlencoded; charset=UTF-8",
    data: {
        r: revision
    }
});
Run Code Online (Sandbox Code Playgroud)

这是为了确保在部署新修订时前端缓存未命中,并且前端从后端请求html模板或json数据.由于这个原因,后端和前端共享相同的修订号.

问题是后端在前端执行PUT,POST或DELETE时获取参数'r'有点不高兴.有没有办法告诉jQuery的ajax这个数据只应该在执行GET请求时使用,而不是在执行POST,PUT或DELETE请求时使用.

更新:

我首先尝试了beforeSend函数,因为我知道它.但是,更改settings.data是可能的,但是当beforeSend返回时,任何更改似乎都会消失.这可能是我的错...... :-)

我已经选择了ajaxPreFilter.虽然这并不容易.options.data不是一个对象,而是$ .param(object)的结果,所以第一个挑战是取消参数化它.我最终得到了这个:

var revision = '159';
$.ajaxPrefilter(function (options, originalOptions, jqXHR) {
    // do not send data for POST/PUT/DELETE
    if (originalOptions.type !== 'GET' || options.type !== 'GET') {
        return;
    }

    var data = originalOptions.data;
    if (originalOptions.data !== undefined) {
        if (Object.prototype.toString.call(originalOptions.data) === '[object String]') {
            data = $.deparam(originalOptions.data); // see http://benalman.com/code/projects/jquery-bbq/examples/deparam/
        }
    } else {
        data = {}; …
Run Code Online (Sandbox Code Playgroud)

ajax rest jquery

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

子规范中带有源的Podspec无法编译

我聚集了一个专用的podspec来专门在5.1.5版中构建Lua,并对Lua进行了许多补充。

下面的podspec应该对应于我们的“手动组合”代码,并为Lua提供openssl,socket和zlib支持。

{
  "name": "Lua51",
  "version": "5.1.5",
  "summary": "The lua language (for embedding).",
  "homepage": "https://github.com/qmx/lua",
  "license": {
    "type": "MIT"
  },
  "authors": {
    "The Lua team": "team@lua.org"
  },
  "source": {
    "http": "http://www.lua.org/ftp/lua-5.1.5.tar.gz",
    "sha1": "b3882111ad02ecc6b972f8c1241647905cb2e3fc"
  },
  "platforms": {
    "ios": "4.0",
    "osx": "10.6"
  },
  "public_header_files": "src/*.h",
  "source_files": "src/*.{c,h}",
  "exclude_files": [
    "src/lua.c",
    "src/luac.c"
  ],
  "requires_arc": false,
  "subspecs": [
    {
      "name": "Socket",
      "license": {
        "file": "LICENSE"
      },
      "authors": {
        "Bruno Silvestre": ""
      },
      "source": {
        "git": "https://github.com/brunoos/luasocket.git",
        "commit": "5edf093643cceb329392aec9606ab3988579b821"
      },
      "source_files": "src/*.*"
    },
    {
      "name": …
Run Code Online (Sandbox Code Playgroud)

ios cocoapods podspec subspec

5
推荐指数
0
解决办法
548
查看次数

如何在 WebView 中上传多个图像?

如何使我的应用程序的 WebView 中的文件上传行为与浏览器应用程序中的行为相同?

我正在尝试在我的 Android 应用程序中创建一个 WebView,允许上传用相机拍摄的多张图像。

当我在浏览器应用程序中打开下面的 HTML 代码时,我可以附加多张图片。当我的应用程序的 WebView 中有相同的代码时,该按钮甚至不会打开对话框。

<form method="post" action="/save/images" name="send" id="send" enctype="multipart/form-data">
   <input type="file" name="data[]" id="camera" multiple="">
   <input type="submit" name="send">
</form>
Run Code Online (Sandbox Code Playgroud)

如果您想尝试一下,这里有一个指向上述 HTML 的链接:http://codereaper.com/bugspray/so/25251993/html-sendimages/

这里的要点是 Android 应用程序本身与此无关,加载的 URL 包含一个在 Android 浏览器应用程序中运行的网页,您可以在其中使用相机上传一堆图像。

我尝试的当前状态包括向应用程序授予权限:

<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT"/>
Run Code Online (Sandbox Code Playgroud)

创建 WebView 时允许 JavaScript 和 FileAcess:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_report);

    WebView webView = (WebView) findViewById(R.id.report_webview);

    WebSettings settings = webView.getSettings();
    settings.setJavaScriptEnabled(true);
    webView.setWebChromeClient(new WebChromeClient());
    webView.getSettings().setAllowFileAccess(true);

    showProgressDialog(R.string.please_wait_title, R.string.please_wait_description);

    webView.setWebViewClient(new WebViewClient() { …
Run Code Online (Sandbox Code Playgroud)

android file-upload webview

4
推荐指数
1
解决办法
7984
查看次数

您可以快速执行打字别名吗

我试图强制执行一个简单的类型,但该类型Int不能与其他Ints 混淆。

假设您有以下类型别名:

typealias EnemyId = Int
typealias WeaponId = Int
Run Code Online (Sandbox Code Playgroud)

我希望以下发生编译器错误:

var enemy: EnemyId = EnemyId("1")
enemy = WeaponId("1") // this should fail
Run Code Online (Sandbox Code Playgroud)

我要失败的行应该失败,因为这两种类型(EnemyId和WeaponId)是不同的类型。

实现这一目标的最好,最干净的方法是什么?

更新

在查看了答案和评论之后,我想添加使用枚举想出的东西:

enum Enemy {
    case id(Int)
    var id: Int {
        switch self {
        case .id(let i):
            return i
        }
    }
}
let enemy = Enemy.id(1)
print("enemy: \(enemy.id)")
Run Code Online (Sandbox Code Playgroud)

当前Mattt的答案要短得多,更符合您对Swift的期望。

更新#2

我尚无法使用Swift 4.1,因此必须执行以下操作:

  struct EnemyId : Hashable {
    private let value: Int

    init(_ value: Int) {
      self.value = value
    }

    init?(_ …
Run Code Online (Sandbox Code Playgroud)

types swift

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

标签 统计

ajax ×1

android ×1

cocoapods ×1

file-upload ×1

ios ×1

jquery ×1

podspec ×1

rest ×1

subspec ×1

swift ×1

types ×1

webview ×1